365体育备用网址报道24.1.2主动聊天开拓实现_365体育备用网址官网资讯

微信公众账号在收到文本消息之后,即调用小i机器人来主动回复,需要将用户ID及用户的内容都传给机器人。相关代码如下所示:

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 }

小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 }

上述代码解读如下:
第3行~第5行:定义API接口,即申请到的接口。
第7行~第18行:这一段为签名算法的实现。小i机器人API需要通过签名来访问,签名的进程是将APP的key和secret以及随机数等参数依据肯定签名算法生成的签名值,作为新的要求头中的一部分以此来提高访问进程中的防篡改性。
签名算法如下:
1.sha1加密(app_key:realm:app_secret)其中realm为" xiaoi.com "
2.sha1加密(method:uri)其中method为要求方法,如"POST", uri为"/robot/ask.do"
3.sha1加密(HA1:nonce:HA2)其中HA1为步骤1的值,HA2为步骤2的值,nonce为40位随机数 第
第20行~第31行:使用cURL猎取调用智能问答的结果。
小i机器人API的有效访问都必须包含签名要求头,在第24行中定义了这样一个签名头字符串,其中app_key为API接口的key,nonce为上面进程中生成的40位的随机数,signature为签名算法步骤3的值。最后为该字符串添加要求头:“X-Auth”。
第27行中将要求参数连接成字符串,通过POST提交给接口。
第32行:返回接口的内容。
小i机器的运行效果如图24-2所示:

图24-2小i机器人智能聊天

------分隔线----------------------------

公布评论 (157人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换明仕亚洲msyz888258
最新评论