【转载】使用图灵机器人接口开发微信公众号聊天功能、设置自定义菜单及申请测试账号
来源:互联网 发布:linux 安装jdk gz文件 编辑:程序博客网 时间:2024/05/16 05:04
使用图灵机器人接口开发微信公众号聊天功能
准备电商比赛的时候申请了个公众号,因为之前错误地申请了订阅号,还是个人类型的,所以基本也没法开发什么功能了。于是就想到之前很火的小黄鸡聊天机器人。不过小黄鸡的接口是要收费的,所以选用了图灵机器人(http://www.tuling123.com/);也能实现自动聊天。
图灵机器人后台提供了两种接入方式,一种是API接入,一种是微信接入。使用微信接入非常简单,只要在微信后台-开发-基本配置里填写图灵机器人提供的URL和token值就可以。不过这样一来整个公众号只能实现图灵机器人的功能,几乎浪费了一个公众号。所以选择使用API接入。这里使用新浪云提供的SAE。下面是代码。
<?php header("Content-type: text/html; charset=utf-8"); //以下为固定用法,实现和微信的对接、验证 define("TOKEN", "callTuling"); $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); $contentStr = callTuling($keyword); $resultStr = $this->transmitText($object, $contentStr, $funcFlag); return $resultStr; } //处理公众号被关注的事件 private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "你终于来了"; } $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; } } //创建函数调用图灵机器人接口 function callTuling($keyword) { $apiKey = "******"; //填写后台提供的key $apiURL = "http://www.tuling123.com/openapi/api?key=KEY&info=INFO"; $reqInfo = $keyword; $url = str_replace("INFO", $reqInfo, str_replace("KEY", $apiKey, $apiURL)); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $file_contents = curl_exec($ch); curl_close($ch); //获取图灵机器人返回的数据,并根据code值的不同获取到不用的数据 $message = json_decode($file_contents,true); $result = ""; if ($message['code'] == 100000){ $result = $message['text']; }else if ($message['code'] == 200000){ $text = $message['text']; $url = $message['url']; $result = $text . " " . $url; }else if ($message['code'] == 302000){ $text = $message['text']; $url = $message['list'][0]['detailurl']; $result = $text . " " . $url; }else { $result = "好好说话我们还是基佬"; } return $result; } ?>
补充
(1)转载:
【使用图灵机器人接口开发微信公众号聊天功能】、
【如何在微信公众号调用图灵机器人】、
【微信公众号(订阅号)如何设置自定义菜单】、
【怎样申请微信公众平台接口测试帐号】、
【公众号自定义菜单添加外部链接,设置图文目录】、
【微信公众平台开发文档】、
【BAE官网】、
【SAE官网】、
【图灵机器人官网】。
(2)图灵机器人官方教程:
【微信公众号接入教程】、【创建机器人篇 ——图灵机器人产品使用教程】
阅读全文
0 0
- 【转载】使用图灵机器人接口开发微信公众号聊天功能、设置自定义菜单及申请测试账号
- 使用图灵机器人接口开发微信公众号聊天功能
- 【整理】使用web api开发微信公众号,调用图灵机器人接口(一)
- 【整理】使用web api开发微信公众号,调用图灵机器人接口(二)
- 微信公众号测试账号-自定义菜单
- 微信公众号开发-初学者-SAE新浪云申请及自定义菜单
- 微信公众号开发-初学者-SAE新浪云申请及自定义菜单
- 微信开发——测试号申请,接口配置,JS接口安全域名,自定义菜单
- 微信公众账号自定义菜单设置使用指南
- 微信公众号测试账号申请验证PHP
- 微信公众号开发 调用图灵机器人的接口使自己的微信成为一个智能机器人
- 如何在微信公众号调用图灵机器人(智能聊天)
- 微信公众平台测试账号的获取及开发使用【微信开发学习】
- 微信聊天机器人开发 java源代码 免费接口 图灵机器人
- 使用测试账号实测微信公众平台各接口
- 使用图灵机器人笑话功能提高微信公众帐号活跃度
- 5.使用 公众平台测试账号 进行开发(微信公众号开发实战)
- 5.使用 公众平台测试账号 进行开发(微信公众号开发实战)
- SEED-DIM3517实验五记录
- 如何搜索相似的图片,如何通过识别图像搜索图片
- java.InternalError:name is too long to represent
- 1.python类型注意点
- 算法入门经典第二版 3-4 Periodic Strings
- 【转载】使用图灵机器人接口开发微信公众号聊天功能、设置自定义菜单及申请测试账号
- 每天一个linux命令(29):chgrp命令
- C++:蓝桥杯练习题~十六进制转八进制
- 僵尸进程与孤儿进程
- Linux下ffmpeg的安装
- 快速排序
- CentOS6.5最小化安装后安装man命令
- 用JavaScript实现简单的乘法计算
- Paint 详解