您的位置:首页 > 移动开发 > 微信开发

微信开发二三事:功能应用二、聊天机器人(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接口和调用实例,那么接下来,我们只需要按着步骤走就是了,完整代码如下:

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就行了,但我为什么不写呢,因为我没权限..............................................................

应同学要求,下次,我们将来说说如何实现微信点歌~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: