上一篇文章介紹了微信公眾平台天氣預報功能的開發,實現了微信公眾平台的第一個實際應用,在接下來的這一篇文章中,我們將對微信翻譯功能進行簡單開發,以供讀者參考。
二、思路分析
和上一篇查詢天氣的思路差不多,首先要對用戶發送過來的消息進行判斷,判斷消息裡是否含有“翻譯”關鍵字,如果含有,則提取待翻譯內容,然後調用網絡上開放的翻譯API 進行相關翻譯。
網絡上有很多翻譯API,大家可以根據自己的需求進行選擇。這裡我們選擇應用比較廣泛的,翻譯功能還比較不錯的有道翻譯API 和百度翻譯API,下面對這兩種API的相關信息進行分析。
3.1 有道翻譯API
3.1.1 API 地址:http://fanyi.youdao.com/openapi
注意:有道提供的API 接口,在下面的測試時,json 數據格式返回不正確,到網上查閱資料,可以正確翻譯的地址為 http://fanyi.youdao.com/fanyiapi,這點注意。
3.1.2 申請key
按照要求填寫相關信息,這些信息,下面會使用到,所以請認真如實填寫。
申請完之後,會在下方生成API key 和keyfrom,使用API 時會用到。
3.1.3 API 使用范例
3.1.4 數據格式
a. xml 格式
http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=&version=1.1&q=這裡是有道翻譯API
0
http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=&version=1.1&q=翻譯
3.2 百度翻譯API
3.2.1 API 地址:http://openapi.baidu.com/public/2.0/bmt/translate
3.2.2 獲取api key
開發者在百度連接平台上注冊得到的授權API key,詳細請參閱:http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%BD%91%E7%AB%99%E6%8E%A5%E5%85%A5/%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97
3.2.3 API 使用范例
百度翻譯API 響應的數據格式為UTF-8編碼的PHP數組對應的標准JSON字符串。
trans_result 為一個數組,其中每一個{}就是一個段落,結構如下所示:
段落結果即為trans_result 數組中的一項:
段落結果說明:
經json_decode 後的形式:
翻譯消息的格式是 “翻譯+待翻譯內容”,所以首先截取前兩個字,判斷是否為 “翻譯” 關鍵字。
使用php函數 mb_substr() 截取,關於該函數的用法上一篇已經講過,這裡不再贅述。
從消息的開頭開始截取,截取兩個字符,然後加以判斷是否為 “翻譯” 關鍵字。
判斷是否只輸入“翻譯”兩字,這樣輸入,沒有待翻譯內容,則輸入的消息也不正確。
接下來進行待翻譯內容提取:
從消息的開頭第3個字符開始截取,截取202個字符,截取出來的即為待翻譯內容。
接著調用函數進行翻譯。
= ->youdaoDic( = ->baiduDic();
5.1 有道翻譯API
數據接口:
http://fanyi.youdao.com/openapi.do?keyfrom===data==1.1=要翻譯的文本
5.1.1 xml 格式
關鍵代碼如下:
youdaoDic( = "orchid"; = "YourApiKey"; = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='..'&key='..'&type=data&doctype=xml&version=1.1&q='. = ( = -> = ->translation->( == 0 "無法進行有效的翻譯"}
說明:
5.1.2 json 格式
關鍵代碼如下:
youdaoDic( = "orchid"; = "YourApiKey"; = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='..'&key='..'&type=data&doctype=json&version=1.1&q='. = ( = json_decode(, = ['errorCode' = ''(( ( 0: = ['translation']['0' 20: = '要翻譯的文本過長' 30: = '無法進行有效的翻譯' 40: = '不支持的語言類型' 50: = '無效的key': = '出現異常'
說明:
5.2 百度翻譯API
百度翻譯API提供UTF-8編碼的PHP數組對應的標准JSON字符串,而且提供了 中->英,中->日,英->中,日->中 四種互譯,比有道翻譯多了一種。
關鍵代碼如下:
baiduDic(,="auto",="auto" =( ="" = "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=".."&q=".."&from=".."&to=".=json_decode(->language_text( = -> [0]-> language_text((!('file_get_contents' = ( = = 5 curl_setopt (, CURLOPT_URL, curl_setopt (, CURLOPT_RETURNTRANSFER, 1 curl_setopt (, CURLOPT_CONNECTTIMEOUT, = curl_exec( curl_close(
說明:
baiduDic() 函數:
language_text() 函數:
有道翻譯-xml 格式:
有道翻譯-json 格式:
百度翻譯:
注意:該翻譯功能放在SAE上能夠正常運行,但在BAE上運行不成功,各位有興趣自行測試一下。
請到QQ群213260412共享裡下載使用。
請關注 卓錦蘇州 微信公眾帳號,卓錦蘇州 基於SAE 平台開發,針對於主流的微信功能進行開發測試。
您可以關注 卓錦蘇州 公眾帳號進行功能測試,以及獲取新的應用開發。
1. 登錄微信客戶端,朋友們 -> 添加朋友 -> 搜號碼 -> zhuojinsz,查找並關注。
2. 掃描二維碼:
卓錦蘇州功能列表。
We Believe, Great People Share Knowledge...