很多朋友詢問如何開發小黃雞之類的智能聊天機器人,但遺憾的是小黃雞接口申請頁面在最近幾個月里都無法訪問,且使用時限制太大,我們找了另一個接口:小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 }
實現效果如下:

