1. 程式人生 > >微信公眾平臺開發(84) 小i機器人

微信公眾平臺開發(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     }

實現效果如下: