艾逗笔

有梦想爱学习的实力派

「分分钟上手weiphp插件开发」Vol.2——成语接龙插件:Idioms

艾逗笔's Avatar 2015-01-09 系列分享

上个月的某一天逛开源中国社区,无意间看到一个帖子:http://www.oschina.net/code/snippet_2286076_44811,发帖的人分享了一个成语接龙的API,当时觉得挺好玩的,就拿来做了一个weiphp成语接龙插件。做这样的一个插件还是很简单的,没有数据模型,不需要管理后台,也不需要写控制器和视图层的代码,直接在微信交互模型中根据用户的发送内容调用API返回内容就行了,开发过程中用到了一个很nice的weiphp方法:set_user_status()。下面把这个weiphp成语接龙插件的开发流程分享出来,让各位看官对weiphp插件开发能有更深一层次的理解。学会了这个插件,那么对于weiphp官方提供的智能聊天、机器人学习时间这样的插件源代码就不难理解了,如果想自己开发天气查询、四六级查询、火车查询等功能就会得心应手了。无非就是编辑微信交互模型,根据用户输入调用相应的API嘛~

废话不多说,走起~

1、创建插件。在weiphp管理后台创建成语接龙插件,勾选安装后立即启用,不需要配置项和管理列表。点“确定”完成插件的创建。

2、安装插件。

3、检测插件是否成功安装。返回到weiphp插件管理后台,可以看到成语接龙插件已经成功安装,因为创建该插件的时候没有勾选需要配置项,所以此处没有显示插件配置页面。

4、编写微信响应代码。

首先,我们来调试一下成语接龙的接口

由调试结果我们可以发现,要使用户正常完成成语接龙,必须重复多次获得用户的输入关键词,当用户输入“成语接龙”时开始触发本插件,提示用户输入一个成语,然后获取用户的下一次输入,把用户的下一次输入提交到成语接龙接口地址,用file_get_contents()函数获得接口返回的内容,如果接口返回内容是一个成语的话,则继续获取用户的下一次输入,并把用户输入的关键词提交到接口,按此规律循环,多次获取用户的输入关键词;若接口返回的内容是不是一个成语,比如是“成语必须为4个汉字”之类的提示语时,则回复给用户的消息中提示用户重新输入一个成语或者输入“退出”退出成语接龙;当用户输入的关键词为“退出”时,则退出成语接龙插件,用户的下一次输入将不会提交到成语接龙接口。

整个微信交互模型开发的思路我们弄清楚了,接下来就开始写代码,其中最关键的是用到weiphp封装的一个函数set_user_status(),这个函数的位置及用法如下图所示

这个函数的大概意思就是把用户的输入作为缓存存储起来,与用户的下一次输入进行关联,从而完成一次连贯输入操作。用法比较简单,传递的第一个参数为插件的标识名,传递的第二个参数为自定义的一个关键词。

下面我们就用这个函数来写一下连贯输入操作:

5、微信测试。

本文最后更新于 天前,文中所描述的信息可能已发生改变