灵感
微信开通了公众账号的api,可以自定义恢复任何的消息,可以用来做些什么呢?在一篇公众平台教程中我找到些灵感。
- 案例一:单词助手,微信号:dict123
- 案例二:树洞微薄,微信号:ishudong
- 案例三:班狸游戏,微信号:zuichaoxi
从单词助手中得到启示,用AppFog创建服务器。把处理过程的php挂载到服务器上。当有消息到来时,微信调用AppFog上的接口php进行处理,并返回处理结果。微信则将处理结果提交给用户。
具体实现
接下来的问题:
- 服务器上的处理函数如何与微信进行交互呢?
- 可以用来做点什么?
关于交互问题,在微信接口说明上我找到答案:
- 消息推送。当普通微信用户向公众账号发消息时,公众平台将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:他只能读懂英文=。=)
无图无真相
思考
接下来想做点更有挑战意义的事情,比如做一个公交查询系统什么的。