天天看點

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

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

這個系列的完整代碼在我的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可以了解更多該圖靈機器人的細節。

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

繼續閱讀