微信开发二三事:功能应用二、聊天机器人(2)
2015-04-18 11:07
375 查看
OK,上篇讲了一下图灵机器人,那个无节操的机器人,相信大家试了后也会明白我为什么这么说了的。那么今天来讲讲另一个机器人,小i机器人。
小i机器人的网址为:http://cloud.xiaoi.com/index.jsp,需要注册才能得到key,而且还需要实名认证,这样每个月才有10000次调用权限,注意,是每个月10000次,不是每天,不过对于小用户来说,每个月10000次差不多够了。
小i机器人的智能没有图灵机器人那么高,在我看来。因为它只能进行很简单的交流,通俗一点的说,就是....智力有限,但节操满满,大家试一试吧。
首先,我们需要注册登录,登录后,在左边的快速接入哪里找到API
点击去以后,我们可以看到我们的key和secret,先看签名算法,我们可以得到一段代码,如下:
然后看智能问答,得到API接口和调用实例,那么接下来,我们只需要按着步骤走就是了,完整代码如下:
OK,上面就是调用小I机器人的完整代码,需要注意的是加密签名的算法,和X-Auth的拼接方法,然后,就是取出内容了。
最后是我为什么说小i有点智商低,其实也不怪小i,因为我们调用的是基础接口嘛,基础的东西。那我们为什么不调用高级接口呢,其实很简单,只需要把type设置为1就行了,但我为什么不写呢,因为我没权限..............................................................
应同学要求,下次,我们将来说说如何实现微信点歌~~
小i机器人的网址为:http://cloud.xiaoi.com/index.jsp,需要注册才能得到key,而且还需要实名认证,这样每个月才有10000次调用权限,注意,是每个月10000次,不是每天,不过对于小用户来说,每个月10000次差不多够了。
小i机器人的智能没有图灵机器人那么高,在我看来。因为它只能进行很简单的交流,通俗一点的说,就是....智力有限,但节操满满,大家试一试吧。
首先,我们需要注册登录,登录后,在左边的快速接入哪里找到API
点击去以后,我们可以看到我们的key和secret,先看签名算法,我们可以得到一段代码,如下:
然后看智能问答,得到API接口和调用实例,那么接下来,我们只需要按着步骤走就是了,完整代码如下:
public class JiQiRenTest { private final static String APP_KEY = "你的APP_KEY"; private final static String APP_SECRET = "你的APP_SECRET" @Test public void createMenuTest() { //定义一些字符串,用于后面拼接和传输 String names="api-awzoxcog"; String key="我爱你"; String realm = "xiaoi.com"; String method = "POST"; String uri = "/robot/ask.do"; byte[] b = new byte[20]; //得到随机数 new Random().nextBytes(b); String nonce = new String(Hex.encodeHex(b)); //将APP_KEY和APP_SECRET进行SHA1加密,得到HA1 String HA1 = DigestUtils.shaHex(StringUtils.join(new String[] { APP_KEY, realm, APP_SECRET }, ":")); //讲method和uri进行SHA1加密,得到HA2 String HA2 = DigestUtils.shaHex(StringUtils.join(new String[] { method, uri }, ":")); //拼接HA1+随机数+HA2,得到加密签名 String sign = DigestUtils.shaHex(StringUtils.join(new String[] { HA1, nonce, HA2 }, ":")); String str = null; HttpClient hc = new HttpClient(); PostMethod pm = new PostMethod("http://nlp.xiaoi.com/robot/ask.do"); pm.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8"); //按要求拼接X-Auth pm.addRequestHeader("X-Auth", "app_key=\"LZFXps7GpdGg\", nonce=\"" + nonce + "\", signature=\"" + sign + "\""); pm.setParameter("platform", "weixin");
<span style="white-space:pre"> </span> //调用基础接口,不要问我为什么不调用高级接口
pm.setParameter("type", "0"); pm.setParameter("userId", names); pm.setParameter("question", key); int re_code; try { re_code = hc.executeMethod(pm); //如果返回码==200,说明调用成功,取出结果 if (re_code == 200) { str = pm.getResponseBodyAsString(); } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(str); } }
OK,上面就是调用小I机器人的完整代码,需要注意的是加密签名的算法,和X-Auth的拼接方法,然后,就是取出内容了。
最后是我为什么说小i有点智商低,其实也不怪小i,因为我们调用的是基础接口嘛,基础的东西。那我们为什么不调用高级接口呢,其实很简单,只需要把type设置为1就行了,但我为什么不写呢,因为我没权限..............................................................
应同学要求,下次,我们将来说说如何实现微信点歌~~
相关文章推荐
- 微信开发二三事:功能应用二、聊天机器人(1)
- 微信开发二三事:功能应用一、天气预报
- 微信开发二三事:功能应用三、点歌系统
- C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍
- C#开发微信门户及应用(7)-微信多客服功能及开发集成
- C#开发微信门户及应用(25)-微信企业号的客户端管理功能
- C#开发微信门户及应用(46)-基于Bootstrap的微信门户应用管理系统功能介绍
- C#开发微信门户及应用(39)--使用微信JSSDK实现签到的功能
- C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能
- C#开发微信门户及应用(38)--微信摇一摇红包功能
- C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能
- C#开发微信门户及应用(30)--消息的群发处理和预览功能
- 网站应用微信登录功能接口开发指南
- C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍
- C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现
- C#开发微信门户及应用(7)-微信多客服功能及开发集成
- 微信开放平台---网站应用开发---微信登录功能 简介
- C#开发微信门户及应用(25)-微信企业号的客户端管理功能
- C#开发微信门户及应用(37)--微信公众号标签管理功能