一、簡介
上一篇文章介紹了微信公眾平台翻譯功能的開發,實現了中、英、日語互譯,在實際生活中也能使用。在接下來的這篇文章中,我們將完成一個比較有趣的功能,那就是聊天機器人,可以在你無聊的時候陪你聊天逗你開心。
二、思路分析
#在這個實驗中,我們將調取小黃雞官方(www. simsimi.com/)提供的API,結合抓取小九機器人(www.xiaojo.com/)的網頁,互相補充。 Simsimi 是收費的,但你可以嘗試7天測試,每天可以免費使用100條回复;小九機器人可以無限制使用,但前提是官方不屏蔽。
三、小黃雞API 分析
#3.1 API & URL
官方API 位址:developer.simsimi.com/api
Request URL:sandbox.api.simsimi.com/request.p
這裡使用免費版測試,付費版的類似,只是URL位址不同。
3.2 請求範例與參數說明
請求範例:
sandbox.api.simsimi.com/request.p?key=your_trial_key&lc=en&ft=1.0&text=hi
參數說明:
key: 申請的API Key
lc: Language code,支援的語言,簡體中文用ch,繁體中文用zh,英文用en,詳細請參考:developer.simsimi.com/lclist
#ft: 是否設定過濾器,
0.0:未過濾(包含詛咒,性內容);
1.0:過濾不文明字句(暫時只支援韓文)
text: 請求的文字
3.3 傳回值分析
result:執行結果回傳碼
##100-OK.
#四、取得小黃雞API Key
4.1註冊simsimi 帳號
URL: developer.simsimi.com/signUp ##4.2 啟動帳號4.3 取得API Key
五、具體實作
5.1 呼叫小黃雞API 實作#dsim($keyword) 函數處理,將其中的「Your API Key」 換成申請到的API Key。
//小黄鸡 public function simsim($keyword){ $key="41250a68-3cb5-43c8-9aa2-d7b3caf519b1"; $url_simsimi="http://sandbox.api.simsimi.com/request.p?key=".$key."&lc=ch&ft=0.0&text=".$keyword; $json=file_get_contents($url_simsimi); // 把整个文件读入一个字符串中 $result=json_decode($json,true); // 对JSON 格式的字符串进行编码 //$errorCode=$result['result']; // 调试用 $response=$result['response']; // 回复的消息 if(!empty($response)){ return $response; }else{ $ran=rand(1,5); switch($ran){ case 1: return "小鸡鸡今天累了,明天再陪你聊天吧。"; break; case 2: return "小鸡鸡睡觉喽~~"; break; case 3: return "呼呼~~呼呼~~"; break; case 4: return "你话好多啊,不跟你聊了"; break; case 5: return "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,万代不朽"; break; default: return "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,万代不朽"; break; } } }
說明:因為有時小黃雞不回复,所以在simsim() 函數中加入了一個判斷,如果$ response 不為空,則回傳$response;如果$response 為空,則加了一個小小的程式碼,讓其隨機回覆自訂的訊息,這樣就可以做到有求必應了。
5.2 呼叫小九機器人實作小九機器人不提供API,故只能透過網頁抓取,程式碼如下:
//小九机器人 public function xiaojo($keyword){ $curlPost=array("chat"=>$keyword); $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,'http://www.xiaojo.com/bot/chata.php');//抓取指定网页 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch);//运行curl curl_close($ch); if(!empty($data)){ return $data; }else{ $ran=rand(1,5); switch($ran){ case 1: return "小鸡鸡今天累了,明天再陪你聊天吧。"; break; case 2: return "小鸡鸡睡觉喽~~"; break; case 3: return "呼呼~~呼呼~~"; break; case 4: return "你话好多啊,不跟你聊了"; break; case 5: return "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,万代不朽"; break; default: return "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,万代不朽"; break; } } }5.3 雙龍戲鳳
我們也可以將上面的小黃雞和小九機器人整合,具體程式碼如下:
//双龙戏凤 public function chatter($keyword){ $curlPost=array("chat"=>$keyword); $ch = curl_init(); //初始化curl curl_setopt($ch, CURLOPT_URL,'http://www.xiaojo.com/bot/chata.php'); //抓取指定网页 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_HEADER, 0); //设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1); //post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch); //运行curl curl_close($ch); if(!empty($data)){ return $data." [/::)小九]"; }else{ return $this->simsim($keyword)." [simsim/::D]"; } }
六、測試
【相關推薦】
1.
以上是微信公眾平台開發之小黃雞API的詳細內容。更多資訊請關注PHP中文網其他相關文章!