微信公众账号聊天机器人gongjiao123

灵感

微信开通了公众账号的api,可以自定义恢复任何的消息,可以用来做些什么呢?在一篇公众平台教程中我找到些灵感。


  • 案例一:单词助手,微信号:dict123
  • 案例二:树洞微薄,微信号:ishudong
  • 案例三:班狸游戏,微信号:zuichaoxi

从单词助手中得到启示,用AppFog创建服务器。把处理过程的php挂载到服务器上。当有消息到来时,微信调用AppFog上的接口php进行处理,并返回处理结果。微信则将处理结果提交给用户。

具体实现

接下来的问题:

  1. 服务器上的处理函数如何与微信进行交互呢?
  2. 可以用来做点什么?

关于交互问题,在微信接口说明上我找到答案:

  • 消息推送。当普通微信用户向公众账号发消息时,公众平台将POST该消息到填写的Url上。
  • 消息回复。对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行相应操作(现支持回复文本消息、回复图文消息和星标操作)。

微信还很贴心的增加了示例PHP代码

在服务器PHP处理函数上,添加如下代码,即可以在一份PHP中处理Post和Get请求。

  if($SERVER['REQUEST_METHOD']=='GET')
    {
        $wechatObj->valid();
    }
    else if ($SERVER['REQUEST_METHOD']=='POST')
    { 
$wechatObj->responseMsg(); }

用来做什么?

既然最近一个人无聊,那就做个聊天机器人陪我说话吧。前不久看到一篇文章《聊天机器人Eugene赢得图灵测试挑战赛》,研究了一下Eugene聊天的接口,发现很简单,三行代码搞定。


    $text = urlencode($keyword);
    $url="http://www.princetonai.com/bot/botanswer.do?request=$text";
    $contentStr = file_get_contents($url);

于是一个新的聊天机器人诞生了,诸位可以搜gongjiao123,或者扫描下面的二维码,加聊天机器人作为好友,然后开始跟他聊天吧。(tips:他只能读懂英文=。=)

gongjiao123

无图无真相

gongjiao123

思考

接下来想做点更有挑战意义的事情,比如做一个公交查询系统什么的。

石聪 /
Published under (CC) BY-NC-SA in categories 瞎捣鼓  tagged with 微信聊天机器人