攀登者机器人客户语义解析对接
- 当前版本V1.0.2
- 修改时间2020-12-16
一、Token校验
1.1 Token校验密钥
请妥善保管好密钥
****** 请联系客服获取
1.2 Token生成
token生成需要unix时间戳、密钥两个参数。生成方式见如下示例:
public String buildToken(long timeStamp, String appKey) {
String text = timeStamp +"\t"+ appKey;
String token = getSha1(text);
return token;
}
public String getSha1(String str){
if (null == str || 0 == str.length()){
return null;
}
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f'};
try {
MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
mdTemp.update(str.getBytes("UTF-8"));
byte[] md = mdTemp.digest();
int j = md.length;
char[] buf = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
buf[k++] = hexDigits[byte0 & 0xf];
}
return new String(buf);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
二、机器人请求调用接口
接口地址
http://www.hanarobot.net:8080/minidancerserver/req/semanticreq?devid=8019092600000001&ts=1592366506&token=32c8e655202b8458fd1833b27623d86b69977143
http://www.hanarobot.net:8080/minidancerserver/req/semanticreq 此服务器地址可以根据客户自己的实际地址进行修改
基本方式
- 接口通过 HTTP POST JSON 方法发送
- 接口支持 HTTP
- 接口返回数据格式为 JSON 格式
请求 URL 参数说明
| 参数名 | 类型 | 说明 | 必要 |
|---|---|---|---|
| devid | string | 机器人ID | 是 |
| ts | long | 当前unix秒级时间戳 | 是 |
| token | string | 校验token | 是 |
请求 JSON 参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | int | 请求事件类型 100-接口可用检测 101-问答请求 |
| text | string | type=100时为空字符串,type=101时是语音转换后的文字内容 |
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 返回结果码,type=100时0为接口可用,其它值为接口不可用,type=101时0为未处理,1为已处理不结束多轮对话,2为已处理并结束多轮对话, 负数为出错 |
| type | int | 请求事件类型 100-接口可用检测 101-问答请求 |
| text | string | type=100时如果需要带过滤的关键词则关键词按英文逗号分隔(,)目前限制最大支持100个关键词,如果不需要过滤关键词返回空字符串,type=101时是处理结果需要机器人播报的文字内容 |
| url | string | type=100固定为空字符串,type=101时是处理结果需要机器人播报的音频地址,此优先级比text高 |
请求实例
接口是否可用POST请求:
http://www.hanarobot.net:8080/minidancerserver/req/semanticreq?devid=8019092600000001&ts=1592366506&token=32c8e655202b8458fd1833b27623d86b69977143
{"text":"","type":100}
返回结果:
{"type":100,"code":0,"text":"","url":""}
接口可用,会把所有的语音对话内容上传给服务器
返回结果:
{"type":100,"code":0,"text":"打开,关闭,测试,查找","url":""}
接口可用,带过滤关键词,机器人只会把语音对话内容中包含关键词的语句上传给服务器
问答请求 POST请求:
http://www.hanarobot.net:8080/minidancerserver/req/semanticreq?devid=8019092600000001&ts=1592366506&token=32c8e655202b8458fd1833b27623d86b69977143
{"text":"我要找三国演义","type":101}
返回结果:
{"type":101,"code":1,"text":"三国演义这本书在第一排第三层书架上","url":""}
获取答案