zoukankan      html  css  js  c++  java
  • 再谈Weiphp公众平台开发——1、成语接龙插件

    易错点,注意插件的命名

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

    2、安装插件。

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

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

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

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

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

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

    <?php
                
    namespace AddonsIdiomsModel;
    use HomeModelWeixinModel;
                
    /**
     * Idioms的微信模型
     */
    class WeixinAddonModel extends WeixinModel{
        function reply($dataArr, $keywordArr = array()) {
            $config = getAddonConfig ( 'Idioms' ); // 获取后台插件的配置参数
            
            $api = 'http://i.itpk.cn/api.php?question=@cy';
            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."
    ".'重新输入一个成语开始接龙,输入【退出】退出成语接龙');
                } else {
                    $keywordArr['step'] = 'input';
                    set_user_status('Idioms', $keywordArr);
                    $this->replyText($reply);
                }
            }
        }
    }
                

    5、微信测试。

  • 相关阅读:
    springboot启动流程(三)Environment简介
    JavaWeb【一、简介】
    JavaJDBC【七、JDBC升级版简介】
    JavaJDBC【六、连接池】
    JavaJDBC【五、事务】
    JavaJDBC【四、存储过程的使用】
    JavaJDBC【三、增删改查】
    JavaJDBC【二、Mysql包加载与使用】
    JavaJDBC【一、概述】
    Java注解【五、注解实战】
  • 原文地址:https://www.cnblogs.com/zeze/p/5987682.html
Copyright © 2011-2022 走看看