TalkAdmin

TalkAdmin是从ServerChan0.8版本开始提供的新功能模块,用于提供基于语音和REST的命令调用。

命令类型

Talkadmin支持上行命令和下行命令两种命令类型。

上行命令用于通过语音向某台服务器发送HTTP请求;下行命令提供一个WebHook地址,当你对这个地址发送请求时,Server酱会将请求内容通过微信发送给绑定的账号。和消息推送不同的是,下行命令支持额外的交互模板,这样你可以在看完消息后,进行管理操作。

上行命令

简单的说,上行命令的实现是这样的:

Screen Shot 2016-07-09 at 2.50.57 PM.png

  1. 你对「方糖」公众号说话。
  2. ServerChan拿到你语音分析出来的文字,然后开始匹配你设置的命令中的正则表达式
  3. 按添加顺序,由新到旧进行匹配,一旦匹配上,给命令设置的callback接口发送POST请求
  4. POST请求的内容是一个json编码的数组,这个数组其实是preg_match_all函数返回的match值。
  5. 如果匹配不上,则发送文字界面供手工编辑后重新提交。

上行命令只需要设置 正则和WebHook回调地址就OK。

Screen Shot 2016-07-09 at 2.56.18 PM.png

下行命令

下行命令主要用于后台审核的应用场景。假设你在运营一个用户可以投稿的笑话平台,当有新的用户投稿以后,你希望可以在手机上阅读,并进行「通过」或者「拒绝」操作。

通过ServerChan原来的功能,我们可以把笑话的内容以Markdown格式发送,但阅读以后,却无法再进行进一步的操作。

下行命令就用于解决这个问题,你可以为一个下行命令设置「交互界面模板」和「交互界面自定义CSS」。

Screen Shot 2016-07-09 at 3.07.28 PM.png

一个下行命令的例子。

命令保存后,可以在列表中点击命令名看到「WebHook地址(参数传入)」:

Screen Shot 2016-07-09 at 3.10.09 PM.png

只要给这个地址POST请求,就能通过微信审核内容了。我们通过PostMan来测试下。

「WebHook地址(参数传入)」接受以下参数:

  • TA_action_on : 为1时显示交互控制面板
  • TA_title : 下行消息标题
  • TA_content: 下行消息内容,支持Markdown
  • TA_*:其他模板要用到的参数,需要以TA_开头,比如TA_jokeid。在模板中可以通过{{$TA_jokeid}}的方式引用。

Screen Shot 2016-07-09 at 3.24.09 PM.png

果然成功了。我们来看看收到的微信:

Screen Shot 2016-07-09 at 3.20.12 PM.png

点进去看详细:

Screen Shot 2016-07-09 at 3.29.52 PM.png

已经可以看到按钮啦!等等,按钮要链接到哪里?有两个办法,一个是通过a标签,直接链接到网站所在的服务器的接口。

<a href="https://ftqq.com/?key=3523Ffe&c=joke&action=accept&id={{$TA_jokeid}}" class="btn btn-primary font-white">通过 &nbsp; <a href="https://ftqq.com/?key=3523Ffe&c=joke&action=reject&id={{$TA_jokeid}}" class="btn btn-danger font-white">拒绝

另外一个办法是通过form表单进行post。

为了接口的安全,记得要在链接里边加上只有你自己知道Token,来确保这个请求是从Serverchan发起的。

评论(18)
GitHub一键登入