定制模板介绍
<p>[TOC]</p>
<h4>什么是定制模板</h4>
<p>定制模板允许开发者根据自己的业务需要,把提醒内容提炼出模板,根据模板格式来发出提醒。</p>
<p>和普通的公众号提醒相比,定制模板发出的公众号提醒可以显示更多内容(普通的公众号提醒只能显示一行标题和一行动态提醒内容,通过定制模板发出的公众号提醒可显示多达7行的内容);此外,Lite用户(即未使用手机号注册的用户)也可以收到完整的定制模板格式的提醒内容。</p>
<p>通过定制模板发出的提醒,样式如下:</p>
<p></p>
<p>由于微信公众号收紧了模板消息的申请,现在已经无法申请到适用于提醒业务的模板消息,喵提醒只能在模板库中选择现有的模板消息使用,这导致您会看到如上图中出现“新简历通知”、“姓名”等不相关的内容,请忽略它们,只关注主体内容即可。</p>
<p>开发者可以在「个人中心-开发者功能-定制模板」找到定制模板入口。喵提醒已为您准备了几个通用性较高的定制模板,您可以直接使用。如果不合适,您也可以申请自己的定制模板。</p>
<p></p>
<p>微信对模板消息的监管相对严格,尤其对内容的合规性很敏感,因此喵提醒的定制模板需要开发者先申请,审核通过后,才能使用。</p>
<p>定制模板使用方法介绍如下:</p>
<h4>1、使用前,先设计定制模板。</h4>
<p>开发者先向喵提醒提交定制模板内容设计:在提醒中显示哪些项,这些项的名称,以及指定项值的类型。</p>
<p>例1:某游戏A辅助会定时向用户提醒游戏角色的HP,MP,疲劳状态,其中HP和MP都是数值类型的项,而疲劳状态是[正常、较少、即将耗尽、已耗尽]这4种状态之一,因此该辅助可以提交这样的定制模板:</p>
<p>> 标题:游戏A辅助
> 模板项:<br />
> HP值:(数字类型)
> MP值:(数字类型)
> 疲劳值:(枚举类型:正常、较少、即将耗尽、已耗尽)</p>
<p>在定制模板的新建界面中,完成填写后的效果:</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=26db774630dd74e701ecb54edd91cc3f&amp;file=file.png" alt="例1" /></p>
<p>例2:某服务器监控提醒会在服务器异常时候给管理员发提醒,提醒中包括服务器编号,服务器的IP,问题描述,则可以提交这样的定制模板: </p>
<p>> 标题:服务器监控
> 模板项:<br />
> 编号:(数字类型)<br />
> IP:(IP地址类型)<br />
> 故障描述:(枚举类型:宕机、断网、磁盘空间不足、内存不足、CPU占用率过高、其他异常)</p>
<p>即,需要先设计定制模板标题,模板中各项的名称,各项值是什么类型,发送定制模板时候严格按照该格式发送。 </p>
<p>目前,消息模板支持的项值类:</p>
<table>
<thead>
<tr>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">示例</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">枚举</td>
<td style="text-align: left;"><code>掉线</code>,<code>血量不足</code>,<code>金币已满</code>,<code>0</code></td>
<td style="text-align: left;">列出可能出现的文本,调用时仅可在这些文本中选择。可使用文本的索引代替,例如<code>0</code>代表第一个文本。</td>
</tr>
<tr>
<td style="text-align: left;">数字</td>
<td style="text-align: left;"><code>100</code>,<code>23.5</code>,<code>-45</code>,<code>5k</code>,<code>6w</code>,<code>10m</code>,<code>2e</code>,<code>9b</code></td>
<td style="text-align: left;">支持以<code>k</code>,<code>w</code>,<code>e</code>,<code>m</code>,<code>b</code>结尾的数字。</td>
</tr>
<tr>
<td style="text-align: left;">IP地址</td>
<td style="text-align: left;"><code>192.168.1.1</code></td>
<td style="text-align: left;">暂只支持IPV4格式。</td>
</tr>
<tr>
<td style="text-align: left;">MAC地址</td>
<td style="text-align: left;"><code>00:88:22:EE:ff:aa</code></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">日期时间</td>
<td style="text-align: left;"><code>2020-04-24</code>,<code>2020-4-24 03:30:21</code></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">时间戳</td>
<td style="text-align: left;"><code>1590665981</code></td>
<td style="text-align: left;">10位数,单位秒,提醒时将自动转换为日期时间格式。</td>
</tr>
<tr>
<td style="text-align: left;">乘积</td>
<td style="text-align: left;"><code>1024*768</code>,<code>1280x960</code></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">分数</td>
<td style="text-align: left;"><code>80/101</code></td>
<td style="text-align: left;">分子/分母格式。</td>
</tr>
</tbody>
</table>
<p>将设计好的定制模板提交,定制模板审核通过即可使用。</p>
<p>注意:定制模板不支持自由的,不确定的文本内容,比如,您设计了一个叫“昵称”的项,并打算在发出提醒时获取用户的昵称,再通过定制模板显示出来,很遗憾这样做不到,因为定制模板不能自由传入不确定的文本内容。但是,如果您提前知道了用户的昵称肯定会在“张三”和“李四”之间出现,你可以使用枚举方式来显示昵称,因为“张三”和“李四”已经提前被设计并允许在定制模板中出现了。</p>
<h4>2、发布定制模板</h4>
<p>审批通过的定制模板需要发布后才能使用。</p>
<p>如果审批通过的定制模板是新建的定制模板,则审核通过的同时,定制模板会自动发布。
否则,如果是修改原有模板后审批通过的,需要手动点击「发布」按钮才能发布。注意:定制模板在发布的那一刻起,新的定制模板内容将完全替换掉旧的定制模板内容,因此请确认在相关业务已经按新的定制模板格式适配并发布后,才进行「发布」操作。</p>
<h4>3、使用定制模板</h4>
<p>在请求喵提醒网址时,使用参数<code>templ</code>设置定制模板,具体格式为: </p>
<pre><code>templ=模板id,标识,项值1,项值2,...,项值n</code></pre>
<p>即使用英文逗号(<code>,</code>)分隔多个值,其中:</p>
<ul>
<li>第0个值是模板id,指定要使用的定制模板。</li>
<li>第1个值是标识,数字类型,用于区分不同的提醒对象。例:您在监控两台服务器,对第一台服务器发出的提醒可以定义为标识:1,第二台标识:2,当收到提醒时可以根据标识判断是哪台服务器发的提醒。如不需要标识,可以传空值(<code>''</code>)。</li>
<li>第2个值开始按定制模板内各项的顺序依次排列项值。</li>
</ul>
<p>举个例子,假设例1中的“游戏A辅助”定制模板的模板id为p123456,HP值显示2000,MP值显示366,疲劳值是“较少”,推送给用户的喵码是t123456,由于只跑一个游戏所以不需要标识区分,则可以用以下方式发送带定制模板的提醒:</p>
<pre><code>http://miaotixing.com/trigger?id=t123456&amp;templ=p123456,,2000,366,较少</code></pre>
<p>您应该注意到了,上面例子中的网址中出现了连续两个逗号<code>,,</code>,这是因为不需要使用标识,所以给标识分配了空字符;假如希望给标识赋值:10,则两个逗号改成<code>,10,</code>。</p>
<p>定制模板一旦调用成功,会替换掉原请求中的<code>text</code>参数的值,并且如果该提醒的提醒渠道开启了微信公众号提醒,那么模板消息效果如下:</p>
<p></p>
<p>此时<code>text</code>参数无论原来是什么,都会被替换成:</p>
<p>> HP值:2000
> MP值:366
> 疲劳值:较少</p>
<p>用户的提醒历史,短信提醒,语音电话提醒或App提醒,都使用被替换后的<code>text</code>参数;Lite用户虽然不能直接接收<code>text</code>参数的内容,但通过定制模板替换后的<code>text</code>内容是可以接收的。</p>
<p>定制模板使用时如果不按定制时候的格式传参数,会调用失败,调用失败的情况下,<code>text</code>参数不会被替换,提醒将会按没有指定定制模板的形式发出,提醒网址依然会返回结果“成功”,如果希望了解定制模板调用失败原因,可以给提醒网址加上参数<code>type=json</code>或<code>type=jsonp</code>,此时返回json或jsonp结果中<code>data.warning.templ</code>对象带有定制模板调用失败的原因。</p>
<h4>温馨提示</h4>
<ul>
<li>使用前请认真阅读并同意《服务使用协议》(位于「个人中心-我的-协议」);</li>
<li>VIP用户使用了提醒缓冲池,缓冲池后台补推的提醒不会使用定制模板形式推送;</li>
<li>VIP用户的心跳网址同样支持定制模板参数;</li>
<li>建议开发者推送带定制模板的消息时,在<code>text</code>参数准备一份完整的提醒内容,不建议因依赖定制模板而省略了<code>text</code>参数,完整的text参数可以保障在定制模板调用失败时,发出的提醒依然是对用户有价值的内容。</li>
<li>除了模板id外,所有项值都支持空值,如例1中如果标识为0,MP值留空,可以设置为:<code>templ=p123456,0,2000,,较少</code></li>
<li>修改现有的定制模板时,提交审核并通过后,需要手动点击「发布」后才能使用。</li>
</ul>