微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

i042416發表於2018-08-22

我的前一篇文章 微信程式開發系列教程(一) 開發環境搭建 已經介紹了微信伺服器的開發環境搭建。本文作為開發系列的第二篇文章,介紹如何給您的微信訂閱號開發一個最簡單的問答服務,非常好玩。

這個系列的完整程式碼在我的github上:

https://github.com/i042416/wechat

本文實現的場景

您的訂閱號粉絲向訂閱號傳送訊息,會得到一個和傳送訊息一模一樣的文字回覆,並且在前面加上了“Add by Jerry:”的字首。

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

沒有什麼意思,對吧?因為現在這個訂閱號的微信訊息伺服器是我們自己開發的了,因此在訊息伺服器上接收到粉絲髮送的文字後,我們可以實現一些有趣的邏輯。比如呼叫一些人工智慧的圖靈API,同訂閱號的粉絲進行聊天,像下面這樣:

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

下面是詳細步驟。

1. 開啟我github專案裡的server.js檔案:

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

實現如下程式碼。這個server.js是整個訊息伺服器的入口了,routesEngine的作用是針對微信平臺傳送到訊息伺服器的不同請求,進行對應處理。當然具體實現在資料夾jerryapp/routes下面的index.js裡。

var express = require('express');var routesEngine = require('./jerryapp/routes/index.js');var app = express();
routesEngine(app);
app.listen(process.env.PORT || 3000, function () {console.log('Listening on port, process.cwd(): ' + process.cwd() );
});

2. 現在我們就開始實現index.js。當粉絲的文字請求傳送到訊息伺服器時,呼叫自己實現的nodejs module "echoService"進行處理。

var request = require('request');var echoService = require("../service/echo.js");module.exports = function (app) {
app.route('/').post(function(req,res){
echoService(req, res);
});
};

開啟echo.js看看實現:

從下圖第6行能看到加在回覆前的字首"Add by Jerry:"。

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

具有人工智慧的圖靈服務

如果不想給您的訂閱號粉絲回覆呆板的"Add by Jerry:", 那就在index.js裡把ecoService註釋掉,用圖靈API代替吧。如下圖29行所示。

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

圖靈API的呼叫實現位於tuning.js,實際上就是消費了一個通過RestFul API暴露出來的人工智慧服務:

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

url如下:

www.tuling123.com/openapi/api?key=de4ae9269c7438c33de5806562a35cac&info=

我們只用把訂閱號粉絲在微信App裡傳送的文字貼上到上述url末尾,呼叫該API就能得到圖靈API分析應答結果。以成都天氣預報為例:

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

訪問 www.tuling123.com 可以瞭解更多該圖靈機器人的細節。

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務

微信程式開發系列教程(二)微信訂閱號+人工智慧問答服務


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2212540/,如需轉載,請註明出處,否則將追究法律責任。

相關文章