微信公众平台开发(84) 小i机器人
很多朋友询问如何开发小黄鸡之类的智能聊天机器人,但遗憾的是小黄鸡接口申请页面在最近几个月里都无法访问,且使用时限制太大,我们找了另一个接口:小i机器人。本文介绍如何在微信公众平台中使用小i接口开发智能聊天机器人。
小i机器人是全球用户量最大的中文聊天机器人,最早在MSN上出现,后拓展到QQ、短信、网页等交互平台上,拥有超过1亿的用户。2012年2月,小i机器人整合了自然语音识别功能,并陆续发布了智能手机、智能电视以及电话上的语音交互版本。
小i机器人申请地址为
http://cloud.xiaoi.com/index.jsp
注册即可获得"初级测试权限",每日能有50次的智能问答;提交个人真实信息后可获得"高级测试权限",每月有10000次智能问答调用次数。想要更多,则要付费。方倍目前使用的就是免费中的高级测试权限。
如果想体验机器人的功能,那么可以直接在后台找到url和token,填到开发模式下即可。
如果公众账号中已经有其他功能,那么就需要使用代码来接入,小i机器人的实现代码如下:
1 function getXiaoiInfo($openid, $content) 2 { 3 //定义app 4 $app_key="************"; 5 $app_secret="********************"; 6 7 //签名算法 8 $realm = "xiaoi.com"; 9 $method = "POST"; 10 $uri = "/robot/ask.do"; 11 $nonce = ""; 12 $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; 13 for ($i = 0; $i < 40; $i++) { 14 $nonce .= $chars[ mt_rand(0, strlen($chars) - 1) ]; 15 } 16 $HA1 = sha1($app_key.":".$realm.":".$app_secret); 17 $HA2 = sha1($method.":".$uri); 18 $sign = sha1($HA1.":".$nonce.":".$HA2); 19 20 //接口调用 21 $url = "http://nlp.xiaoi.com/robot/ask.do"; 22 $ch = curl_init(); 23 curl_setopt($ch, CURLOPT_URL, $url); 24 curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Auth: app_key="'.$app_key.'", nonce="'.$nonce.'", signature="'.$sign.'"')); 25 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 26 curl_setopt($ch, CURLOPT_POST, 1); 27 curl_setopt($ch, CURLOPT_POSTFIELDS, "question=".urlencode($content)."&userId=".$openid."&platform=custom&type=0"); 28 $output = curl_exec($ch); 29 if ($output === FALSE){ 30 return "cURL Error: ". curl_error($ch); 31 } 32 return trim($output); 33 }
微信接口中调用如下:
1 private function receiveText($object) 2 { 3 $keyword = trim($object->Content); 4 include("xiaoi.php"); 5 $content = getXiaoiInfo($object->FromUserName, $keyword); 6 $result = $this->transmitText($object, $content); 7 return $result; 8 }
实现效果如下:
微信公众平台开发(84) 小i机器人相关推荐
- 微信公众平台开发教程(四) 实例入门:机器人(附源码)
微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在 ...
- 微信公众平台开发(97) 图文消息
在这篇微信公众平台开发教程中,我们将介绍如何灵活的使用图文消息功能.我们将只介绍被动回复消息中的图文消息,发送客服消息及高级群发消息接口的发送的图文消息与本文介绍的图文消息的各情况基本一致. 本文分为 ...
- 微信公众平台开发教程
微信公众平台开发教程 http://blog.csdn.net/lyq8479/article/category/1366622/1 [024] 欢迎大家关注我的微信公众帐号小q机器人(xiaoqro ...
- 微信公众平台开发教程第20篇-新手解惑40则
笔者在CSDN博客频道推出微信公众平台开发教程之后,接触了许多公众平台开发爱好者,也帮助他们解决了许多实际的问题,当然这其中有很多问题都是重复的,因此,笔者将这些问题及解答整理出来,以帮助更多初学者少 ...
- 微信公众平台开发入门教程(图文)
关键字:微信公众平台开发入门 作者:贝创工作室 原文: http://www.cnblogs.com/imaker/p/5491433.html 背景知识:微信公众平台的开发需要有一定的PHP基础知识 ...
- 基于php的微信公众平台开发入门实例
作者:zbtree 这篇文章主要介绍了基于php的微信公众平台开发入门,实例分析了微信公众平台从注册.配置方法及接口代码的实现技巧,深入浅出.希望可以帮助大家快速入门. CSDN学院开设了系列直播&l ...
- 微信公众平台开发最佳实践(第2版)
<微信公众平台开发最佳实践 第2版> 微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 前言 出版说明 自从方倍工作室在博客园推出微信 ...
- 微信公众平台开发最佳实践
<微信公众平台开发最佳实践>共分10章,案例程序采用广泛流行的PHP.MySQL.XML.CSS.JavaScript.HTML5等程序语言及数据库实现.系统完整地介绍微信公众平台基础接口 ...
- [044] 微信公众平台开发教程第20篇-新手解惑40则
笔者在CSDN博客频道推出微信公众平台开发教程之后,接触了许多公众平台开发爱好者,也帮助他们解决了许多实际的问题,当然这其中有很多问题都是重复的,因此,笔者将这些问题及解答整理出来,以帮助更多初学者少 ...
最新文章
- pygame里面物体闪烁运动_教师资格【试讲示范】高中物理试讲答辩——《自由落体运动》试讲稿答辩...
- mysql 存储引擎的选择_MySQL学习笔记(四):存储引擎的选择
- powerquery分组_Power Query实现数据分组压缩的思路分享
- [翻译]敏捷软件开发 一 之简要介绍
- 工作进度总结汇报01
- 3.放弃CHAR吧,在铸成大错之前!
- windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
- MFC类向导添加自定义消息未声明标识符的解决方法
- shell结合expect写的批量scp脚本工具
- 网页mysql命令大全_Mysql命令大全
- 一个完整的数据分析体系,该长啥样?
- urllib2的Post和Get请求
- jQuery EasyUI 简介
- JAVA-初步认识-第八章-数组工具类中静态的使用
- ARM裸机开发(三)SDRAM编程
- Java面向对象编程之三大特性
- PWM整流器仿真。 在simulink中搭建了PWM整流器,采用电压电流双闭环控制,实现了网侧电压与电流同相位,单位功率因数运行
- nginx负载接口与宕机切换
- php redis 搜索,一步步实现 Redis 搜索引擎
- 自动驾驶|福特将在美国新建自动驾驶汽车工厂 计划未来两年投产
热门文章
- 丹东御空服务器维修,部分服务器苍穹星图奖励显示异常说明
- u盘删除数据恢复,迅龙U盘数据恢复软件
- 20201111-jetson nano系统安装+输入法+codeoss+联调舵机
- AMQ7064: Log path not valid or inaccessible.
- python毕业设计作品基于django框架 校园运动场地预约系统毕设成品(6)开题答辩PPT
- python自动化:uiautomation、pyautogui操作会计记账系统(5):财务公开
- 进程管理之PV操作的个人理解
- robot.txt 搜索引擎 蜘蛛爬虫 搜索规则
- 教你在网页中添加微软地图
- 2020美菜网产品经理春招面经