易错点,注意插件的命名

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

2、安装插件。

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

4、编写微信响应代码。首先,我们来调试一下成语接龙的接口。

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

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

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

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

namespace Addons\Idioms\Model;useHome\Model\WeixinModel;/**

* Idioms的微信模型*/

class WeixinAddonModel extendsWeixinModel{function reply($dataArr, $keywordArr = array()) {$config = getAddonConfig ( ‘Idioms‘ ); //获取后台插件的配置参数

$api = ‘http:[email protected];if ($dataArr[‘Content‘] == ‘成语接龙‘ || $dataArr[‘Content‘] == ‘Idioms‘ || $dataArr[‘Content‘] == ‘3‘) {$keywordArr[‘step‘] = ‘input‘;

set_user_status(‘Idioms‘, $keywordArr); //缓存自定义关键词

$this->replyText(‘请输入一个成语,比如:一马当先‘);

}if ($keywordArr[‘step‘] == ‘input‘) {if ($dataArr[‘Content‘] == ‘退出‘) {$this->replyText(‘您已经退出成语接龙,再次回复【成语接龙】即可进入~‘);return false;

}$reply = file_get_contents($api.$dataArr[‘Content‘]);if ($reply == ‘别来骗人家,不是随便打4个字就是成语哒!‘ || $reply == ‘成语必须为4个汉字‘) {$keywordArr[‘step‘] = ‘input‘;

set_user_status(‘Idioms‘, $keywordArr);$this-> replyText($reply."\n".‘重新输入一个成语开始接龙,输入【退出】退出成语接龙‘);

}else{$keywordArr[‘step‘] = ‘input‘;

set_user_status(‘Idioms‘, $keywordArr);$this->replyText($reply);

}

}

}

}

5、微信测试。

原文:http://www.cnblogs.com/zeze/p/5987682.html

php 成语接龙api,再谈Weiphp公众平台开发——1、成语接龙插件相关推荐

  1. 再谈Weiphp公众平台开发——1、成语接龙插件

    易错点,注意插件的命名 1.创建插件.在weiphp管理后台创建成语接龙插件,勾选安装后立即启用,不需要配置项和管理列表.点"确定"完成插件的创建. 2.安装插件. 3.检测插件是 ...

  2. 微信公众平台开发:JS API支付

    本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请 ...

  3. 微信公众平台开发—成语接龙

    因为申请的是个人未认证的订阅号,开启开发者模式以后没有菜单,只能使用接收消息-回复消息的方式来开发 一.实现思路 1.成语接龙题库 成语接龙的题库比24点的复杂一些,数量也很大,我建的表字段是:&qu ...

  4. 再谈Revit二次开发的可靠性和前景

    接到一个问题咨询如下信息. Revit本身的开发规范吗?Revit发展前景如何?听说了一些Revit的身世,老担心它本身的代码就不规整.严谨,程序不够稳定,在这个平台上开始大规模二次开发有很大风险.公 ...

  5. Web API实现微信公众平台开发-服务器验证

    背景 最近开发微信公众号相关接口,在这里记录下微信公众号相关各项功能的实现. 先决条件 1.一台可部署web服务的服务器或者云平台(本地可以搞个花生壳域名). 2.一个可以正常使用的微信公众账号,开始 ...

  6. 浅谈微信公众平台运用的场景

    微信,是一个生活方式 超过三亿人使用的手机应用 支持发送语音短信.视频.图片和文字 可以群聊,仅耗少量流量,适合大部分智能手机 上面是微信官方网站的微信说明.这两年,随着智能手机的普及,微信得到迅猛的 ...

  7. java微信公众平台开发接口_微信公众平台API的Java通讯实现

    微信公众平台 相信大家也不陌生,官方网站提供了一个简单的php程序Demo 因为微信平台采用HTTP方式承载微信的协议,而且不是双向通讯,也就是说只能由微信服务器主动请求我们的服务器.其实当你使用我开 ...

  8. Web API实现微信公众平台开发-接收数据Post

    介绍 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上.在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在 ...

  9. 微信公众平台开发,API接入与推送事件(1)

    博客好久没有更新了,今天说说微信开发.微信开发的好多初学者都会又这样的迷惑,微信开发到底是什么?其实微信开发本质我和我们的网站开发没有太大的区别.我们常说的微信开发也就是公众号开,微信公众号分为三个类 ...

最新文章

  1. 手机号码格式验证和 FASTDFS 工具类
  2. Android自定义滑动验证条
  3. GBDT原理与泰勒展开
  4. Android_SQLite_升级框架
  5. 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
  6. PIC模拟从入门到熟练系列之组会PPT20210913《Note of PIC》
  7. C语言将正整数转换为字符串(附完整源码)
  8. oracle查询排序asc/desc 多列 order by
  9. python mvc_python mvc设计模式(一)
  10. 70进货卖100利润是多少_服装批发利润大揭秘!让你拿货砍价心里有个底
  11. jQuery 学习-样式篇(四):jQuery 设置和删除元素的属性
  12. SCP对拷如何连接指定端口远程主机
  13. 使用JSONObject toString后,会增加反斜杠转义符
  14. windows C++删除非空文件夹
  15. node2vec python_node2vec 安装失败经历
  16. Ph0thon字符串
  17. 计算机主机插槽图,图片解说看个透 教你认识主板上的插槽
  18. 红色警戒2修改器原理百科(二)
  19. 个人愚见: React 和 Vue 区别
  20. 分析:大数据失败案例及背后原因!

热门文章

  1. Java实现若干个数计算平均值并保留小数位 java计算平均值 java四舍五入保留小数
  2. 苍狼敏捷软件开发团队建设指南-1-团队模型
  3. 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview
  4. coding-summaries
  5. 利用开源 SNI PROXY+DNSMASQ 工具链实战 Netflix 流媒体解锁
  6. OsgEarth星空背景
  7. graphpad画生存曲线怎么样去掉删失点_Graphpad Prism 绘制散点图
  8. 前端实现从视频中抽离出音频
  9. 天翼云主机利用filezilla部署FTP服务器
  10. 经纬度批量转地址(保姆级教程)