微信小程式獲取API實現功能
微信小程式漸漸覆蓋生活的方方面面,工具類小程式也由於它實用與方便結合的優勢受到大眾追捧,小程式通過開放的API完善自身功能,類似獲取地圖API可以通過小程式獲取定位,通過。
製作要點有nodejs,百度翻譯api,騰訊雲伺服器,ssl證書,nginx反向代理nodejs專案。下載本專案到本地或者你的伺服器,進入server資料夾,輸入npm install安裝依賴,等待安裝完成輸入npm start啟動後端指令碼,app資料夾使用微信開發工具開啟,把pages資料夾內index.js中的wx.request中的url改為你的伺服器域名或者ip地址,也可以本地除錯的話應該可以改為:localhost:埠。做一個小程式翻譯助手,非常簡單,微信的api只是使用wx.request和onShareAppMessage兩個重要的官方api函式,至於邏輯那些只能自己寫。
這個小程式,部署在騰訊雲伺服器裡面,在3000埠跑,用Nginx在443埠進行代理,在server資料夾內的server.js負責接收小程式傳送過來的請求,並且使用translate.js裡面的函式進行翻譯,最後把結果反饋給小程式。translate.js裡面使用百度翻譯的api,主要使用http.request()函式,百度翻譯的api很好用。
核心程式碼
module.exports= function(params, callback) {
if (typeof params === \'string\') {
params = {
query: params
};
}
params = {
from: params.from || \'zh\',
to: params.to || \'en\',
query: params.query || \'\'
};
var data = querystring.stringify(params);
options = {
host: \'fanyi.baidu.com\',
port: 80,
path: \'/v2transapi\',
method: \'POST\',
headers: {
\'Content-Type\':\'application/x-www-form-urlencoded\',
\'Content-Length\': data.length
}
};
varreq = http.request(options, function(res) {
var result = \'\';
res.setEncoding(\'utf8\');
res.on(\'data\', function(data) {
result += data;
});
res.on(\'end\', function() {
//console.log(result);
var obj = JSON.parse(result);
console.log(obj);
var str = obj.trans_result.data[0].dst;
callback(str);
});
});
req.on(\'error\', function(err) {
console.log(err);
setTimeout(function() {
translation(query, callback);
}, 3000);
});
req.write(data);
req.end();
};
引數:
params = {
from: params.from || \'zh\', //原來是什麼語言
to: params.to || \'en\', //要翻譯為什麼語言
query: params.query || \'\' //要翻譯的語句
};
使用百度翻譯的api,必須知道每種語言,百度翻譯使用什麼單詞表示的:
百度提供的API可以賦予小程式能夠實現百度功能,在地圖和翻譯這一型別的API開放後,會有更多其他商品的介面將接入小程式,屆時小程式將泛用於各種場景。
更多微信小程式開發教程關注小程式資訊