微信公众平台开发入门:[8]聊天机器人可开发

简介:

在这篇教程中,我们将介绍如何在微信公众平台上开发:【小黄鸡聊天机器人】的功能。微信公众号,客户多了,来不及每个都体贴的照顾;是不是很想有个机器人自动陪聊来顶一下?这里就说说微信聊天机器人的开发。

 

第一部分 基于模拟请求的方式

 
  1. 1

    模拟请求数据(先看一下小黄鸡的网页版界面)

     

  2. 2

    我们通过模拟http请求来实现,上面对话抓包如下:

    (下图分别是:发送消息的包,接收消息的包)

     

     

     

  3. 3

    根据上面的包,模拟发起请求如下

     

  4. 4

    接下来,我们做下与微信的对接,代码如下

     

  5. 5

    看下演示效果

    END

第二部分 基于接口的方式

  1. 1

    申请小黄鸡接口SimSimi,发音为〝shim-shimee〞,中文翻译:小黄鸡,由韩文simsim(심심)演变而成。 “심심”原意为“无聊”。SimSimi 由ISMaker于2002年建立流行的人工智能对话系统。

    接口申请流程:

    1. 注册账号2. 激活账号3. 申请7天试用接口(或者付费购买接口,价格30美元10 万次)4. 获得Key


  2. 2

    接口分析(如下图)

  3. 3

    程序实现

    构造Url参数

       $params['key'] = "d4899e2a-7ea8-40ab-a0d2-f258ddd7de15";    $params['lc'] = "ch";    $params['ft'] = "1.0";    $params['text'] = $keyword;        $url = "http://sandbox.api.simsimi.com/request.p?".http_build_query($params); 

    CURL获取内容

       $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    $output = curl_exec($ch);    curl_close($ch);

    获取回复内容

       $message = json_decode($output,true);    $result = "";    if ($message['result'] == 100){        $result = $message['response'];    }else{        $result = $message['result'].$message['msg'];    }

    小黄鸡完整代码simsimi.php

    function callSimsimi($keyword) {    $params['key'] = "d4899e2a-7ea8-40ab-a0d2-f258ddd7de15";    $params['lc'] = "ch";    $params['ft'] = "1.0";    $params['text'] = $keyword;        $url = "http://sandbox.api.simsimi.com/request.p?".http_build_query($params);    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    $output = curl_exec($ch);    curl_close($ch);    $message = json_decode($output,true);    $result = "";    if ($message['result'] == 100){        $result = $message['response'];    }else{        $result = $message['result']."-".$message['msg'];    }    return $result;  

  4. 4

    接入微信公众平台

    将官方文件的$contentStr = “Welcome to wechat world!”; 修改为接口调用$contentStr = callSimsimi($keyword);

    整段代码如下:

    define("TOKEN", "pondbay");

     

    $wechatObj = new wechatCallbackapiTest();

    if (isset($_GET['echostr'])) {

        $wechatObj->valid();

    }else{

        $wechatObj->responseMsg();

    }

    class wechatCallbackapiTest

    {

        public function valid()

        {

            $echoStr = $_GET["echostr"];

            if($this->checkSignature()){

                echo $echoStr;

                exit;

            }

        }

        private function checkSignature()

        {

            $signature = $_GET["signature"];

            $timestamp = $_GET["timestamp"];

            $nonce = $_GET["nonce"];

            $token = TOKEN;

            $tmpArr = array($token, $timestamp, $nonce);

            sort($tmpArr);

            $tmpStr = implode( $tmpArr );

            $tmpStr = sha1( $tmpStr );

     

            if( $tmpStr == $signature ){

                return true;

            }else{

                return false;

            }

        }

        public function responseMsg()

        {

            $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

            if (!empty($postStr)){

                $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

                $RX_TYPE = trim($postObj->MsgType);

                switch ($RX_TYPE)

                {

                    case "text":

                        $resultStr = $this->receiveText($postObj);

                        break;

                    case "event":

                        $resultStr = $this->receiveEvent($postObj);

                        break;

                }

                echo $resultStr;

            }else {

                echo "";

                exit;

            }

        }

        private function receiveText($object)

        {

            $funcFlag = 0;

            $keyword = trim($object->Content);

            include('simsimi.php');

            $contentStr = callSimsimi($keyword);

            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);

            return $resultStr;

        }

        private function receiveEvent($object)

        {

            $contentStr = "";

            switch ($object->Event)

            {

                case "subscribe":

                    $contentStr = "欢迎关注方倍工作室\n小黄鸡为您服务!";

            }

            $resultStr = $this->transmitText($object, $contentStr);

            return $resultStr;

        }

        private function transmitText($object, $content, $flag = 0)

        {

            $textTpl = "<xml>

    <ToUserName><![CDATA[%s]]></ToUserName>

    <FromUserName><![CDATA[%s]]></FromUserName>

    <CreateTime>%s</CreateTime>

    <MsgType><![CDATA[text]]></MsgType>

    <Content><![CDATA[%s]]></Content>

    <FuncFlag>%d</FuncFlag>

    </xml>";

            $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);

            return $resultStr;

        }

  5. 5

    至此,这种方式开发聊天机器人,也OK了

本文转自博客园知识天地的博客,原文链接:微信公众平台开发入门:[8]聊天机器人可开发,如需转载请自行联系原博主。

相关文章
|
3月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
4月前
|
数据可视化 机器人 Java
聊天软件自动回复脚本,微信抖音快手小红书,消息自动回复工具机器人【java】
包含4个完整模块:主逻辑模块实现核心回复功能,工具模块封装常用函数,UI模块提供可视化控制界面
|
3月前
|
机器人 数据安全/隐私保护 Python
微信自动转发机器人,微信群自动发消息机器人,微信全自动群发软件
展示一个使用Python进行基础网页自动化的示例代码,仅供学习自动化技术原理使用。
|
1月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
2月前
|
域名解析 人工智能 机器人
AppFlow:企业微信支持流式群聊机器人
企业微信近日更新,新增群聊机器人功能,支持与自定义大模型对话。通过@机器人,可实现流式输出,提升交互效率。只需简单配置,即可将AI能力集成至群聊,完成即时消息解析与业务联动。
497 1
AppFlow:企业微信支持流式群聊机器人
|
2月前
|
小程序 JavaScript API
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
这篇文章介绍了使用uni-halo框架进行微信小程序开发的过程,包括选择该框架的原因、开发目标以及项目配置和部署的步骤。
111 0
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
|
3月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能
|
5月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
1176 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
3月前
|
监控 机器人 数据安全/隐私保护
免费微信群管理机器人, 微信群机器人软件, 微信群机器人软件
这个微信群机器人包含主程序、配置文件和工具模块,实现了自动登录、消息监控、违规检测
|
3月前
|
机器人 数据安全/隐私保护
微信群聊机器人插件,微信机器人聊天工具,微信群自动聊天脚本
代码说明:这个微信机器人系统包含主程序、群管理模块和多个插件。主程序基于itchat库实现微信登录和消息处理

热门文章

最新文章