這里說的微信就是微信公眾平臺(tái),為了提高其活躍度,開發(fā)者在微信公眾帳號中加入了聊天、笑話、天氣查詢等很多功能,但這些功能已經(jīng)沒有什么特別之處,為了區(qū)別讓自己的公眾帳號擁有與眾不同的地方,就需要開發(fā)一些有創(chuàng)意的功能。本文就講解如何通過圖靈機(jī)器人api接口實(shí)現(xiàn)“成語接龍”,關(guān)于圖靈機(jī)器人,就不多介紹,大家可以去看一下官方網(wǎng)站:
http://www.tuling123.com
實(shí)現(xiàn)步驟:
1、注冊圖靈機(jī)器人api,獲取接口key。
圖靈機(jī)器人網(wǎng)站:http://www.tuling123.com/
郵箱注冊,激活即可。
2、封裝參數(shù),key、info、userid
/**
* 封裝http請求的url參數(shù)
* @return url
*/
public String formatUrl(String info){
/** 此處為圖靈api接口
* key:第一步中注冊圖靈機(jī)器人帳號即可得到,以11111111代替
* info:發(fā)送給微信的內(nèi)容,進(jìn)入成語接龍模式可以用“成語接龍”
* userid:區(qū)分自己的用戶,微信可以用微信的openid */
info = "成語接龍";
String apiUrl = "http://www.tuling123.com/openapi/api?key=11111111&info="+info+"&userid=********";
return apiUrl;
}
3、編寫httpget請求方法
/**
* 發(fā)送httpget請求
* @param param 請求鏈接和參數(shù)
* @return 結(jié)果
*/
public String getProcess(Stringparam){
/** 發(fā)送httpget請求 */
HttpGet request = new HttpGet(param);
String result = "";
try {
HttpResponseresponse = HttpClients.createDefault().execute(request);
if(response.getStatusLine().getStatusCode()==200){
result =EntityUtils.toString(response.getEntity());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
4、調(diào)用圖靈機(jī)器人接口
/**
* 請求圖靈機(jī)器人接口,并解析結(jié)果數(shù)據(jù)
* @param info 請求內(nèi)容
*/
public void getResult(String info){
/** 獲取url */
String url =formatUrl(info);
/** 發(fā)送http get請求,獲取圖靈機(jī)器人接口結(jié)果 */
String result =getProcess(url);
/** 解析圖靈機(jī)器人接口返回結(jié)果 */
try {
JSONObject json = new JSONObject(result);
//成語接龍模式code=100000
if(100000==json.getInt("code")){
result =json.getString("text");
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
5、在通過“成語接龍”進(jìn)入成語接龍模式之后,循環(huán)調(diào)用接口,即可實(shí)現(xiàn)圖片中展示的效果。
總結(jié),在成語接龍功能的實(shí)現(xiàn)過程中,上下文的關(guān)聯(lián)是最重要的,這也是圖靈機(jī)器人接口的強(qiáng)大之處。userid參數(shù)正是區(qū)分不同的用戶、對同一個(gè)用戶前后語義實(shí)現(xiàn)關(guān)聯(lián)的標(biāo)志,所以,想要實(shí)現(xiàn)成語接龍的功能,一定要傳userid。