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

一、模拟请求数据

先看一下小黄鸡的网页版界面

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

发送消息的包

接收消息的包:

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

二、与微信对接

小黄鸡还可以使用API方式调用,但免费时间有限,代码和上面基本一样,就不多写了。

三、演示效果

第二部分 基于接口的方式

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

接口申请地址: http://developer.simsimi.com/pricing
接口申请流程:
1. 注册账号
2. 激活账号
3. 申请7天试用接口(或者付费购买接口,价格30美元10 万次)
4. 获得Key:d4899e2a-7ea8-40ab-a0d2-f258ddd7de15

 

二、接口分析

请求 URL

http://sandbox.api.simsimi.com/request.p?key=your_trial_key&lc=en&ft=1.0&text=hi

请求参数说明
key:授权key
text:查询消息
lc: 语言代码
ft: 过滤器参数

响应示例
{ “result”: 100, “response”: “Who are you?!”, “id”: 13185569, “msg”: “OK.” }

响应参数说明
result: 调用结果,成功时为100
id: 响应id
response: 响应消息内容
msg: 调用结果对应的内容

三、程序实现

构造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;
}

接入微信公众平台
将官方文件的$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;}
}

更多内容,请关注方倍工作室微信,然后回复 “教程”,

微信公众平台 消息 接口 小黄鸡 小贱鸡 机器人
作者:http://www.cnblogs.com/txw1958/

转载于:https://www.cnblogs.com/SlashOut/p/4813726.html

微信公众平台消息接口开发 小黄鸡(小贱鸡)机器人 微信公众平台 公众号聊天机器人 ,消息,接口,小黄鸡,小贱鸡,机器人...相关推荐

  1. 容联云通讯php短信接口,开发中使用 【容联 云通信】获取短信验证码的 Javascript 接口...

    开发中使用 [容联 云通信]获取短信验证码的 Javascript 接口 在平台应用列表添加应用. 在测试号码中绑定测试手机号码,只有这个号码能接收验证短信. 在项目中绑定配置:将控制台首页的开发者主 ...

  2. 微信公众号平台接口开发:发送客服消息

    官方接口介绍 发送文本信息 参数有4个, access_token这个就不用介绍了,就是之前得到的那个AccessToken,就是在这个接口里边当中参数用的 touser是关注了公众号的微信用户的op ...

  3. 微信公众平台开发三:微信的OAuth2.0登录开发

    1. 微信支付项目三:实现微信OAuth2.0一键登录开发 文章目录 1. 微信支付项目三:实现微信OAuth2.0一键登录开发 2. 登录方式的优缺点和微信一键登录 3. 微信登录步骤 4. 微信一 ...

  4. NeuChar 平台使用及开发教程 索引

    什么是 NeuChar? NeuChar 是由盛派(Senparc)团队发布的新一代跨平台服务系统,其中包含了开放的跨平台通讯标准及核心计算模块(Senparc.NeuChar.dll)以及配套的云管 ...

  5. 尚医通-OAuth2-微信登录接口开发(三十一)

    目录: (1)微信登录-OAuth2介绍 (2)前台用户系统-微信登录-准备工作 (3)微信登录-生成微信二维码-接口开发 (4)微信登录-生成验证码-前端整合 (5)微信登录-获取扫码人信息-实现分 ...

  6. SpringBoot+Vue博客系统---后端接口开发

    Java后端接口开发 从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springboot作为我们的框架基础,这是离不开的了. 然后数据层,我们常用 ...

  7. PHP银联在线支付接口开发日志

    银联在线支付接口开发日志 1. 登录银联自助化测试平台(登陆地址:open.unionpay.com),登录后,点击我的产品,如下:点击右方需要测试的接口,本例以 手机网页支付(WAP支付)为例. 2 ...

  8. php银联支付接口 demo,php版银联支付接口开发简单实例详解

    这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下 支付接口现在有第三方的支付接口也有银行的支付接口.这里就来介绍 ...

  9. 视频教程-微博登录接口开发-PHP

    微博登录接口开发 2009年4月创办 淄博日诺网络科技有限公司 法人总经理 2016年负责 中国传媒大学凤凰学院 网站开发 项目负责人 2017年 参与负责 用友软件理财项目开发 郭孟涛 ¥39.00 ...

  10. 公众号 接收规则 消息_微信公众平台 发送模板消息(Java接口开发)

    前言:最近一直再弄微信扫码推送图文消息和模板消息发送,感觉学习到了不少东西.今天先总结一下微信公众平台模板消息的发送.因为这个自己弄了很久,开始很多地方不明白,所以今天好好总结一下. 微信公众平台技术 ...

最新文章

  1. linux命令——tar
  2. 年度数据与月度数据转化_山东工会新媒体传播力指数2020年12月数据、年度数据出炉...
  3. tsp 分支界限 java_干货 | 10分钟教你用branch and bound(分支定界)算法求解TSP旅行商问题...
  4. 第一个Arduino程序
  5. 《微信公众平台开发最佳实践》——2.4 本章小结
  6. jenkins 执行构建 并查看结果
  7. SpringBoot整合Redis集群版本问题
  8. Python使用集合实现素数筛选法
  9. 计算机各种编码来历及区别
  10. 【数据分析】简介Excel数据表及设计要求
  11. 使用音频转换器怎么转换电影的格式?
  12. 转:js中arguments详解
  13. Boost Thread 编程指南、Boost线程入门教程
  14. NSIS:在线下载并安装程序
  15. (附源码)计算机毕业设计ssm电影票网上订票系统
  16. ztek usb转串口 linux,Z-TEK USB转串口驱动下载
  17. javascript设计模式【上】
  18. 排座系统c语言,2008noip排座位C语言详解.doc
  19. 公司MES项目现场落地实施总结
  20. 转换 wav,ape,flac 音乐为 mp3,m4a(mp4) 格式

热门文章

  1. access orcad 数据库_cis(orcad)本地元件access数据库创建跟加载方法详解.doc
  2. LED背光源优势的表现
  3. 苹果开发者申请-创建证书签名请求
  4. Python描述 LeetCode 781. 森林中的兔子
  5. Axure如何实现标签切换功能
  6. FineReport 创建报表模板
  7. 基于Android技术的物联网应用开发
  8. There are unfinished transactions remaining解决办法
  9. python turtle 海龟画图歌尔号 火箭 三体 地球
  10. 庞加莱买面包的故事(二)