SAP系統和微信集成的系列教程之二:如何經過微信公衆號消費API

本系列的英文版Jerry寫做於2017年,這個教程總共包含十篇文章,發表在SAP社區上。node

系列目錄

(1) 微信開發環境的搭建
(2) 如何經過微信公衆號消費API(本文)
(3) 微信用戶關注公衆號以後,自動在SAP C4C系統建立客戶主數據
(4) 如何將SAP C4C主數據變化推送給微信公衆號
(5) 如何將SAP UI5應用嵌入到微信公衆號菜單中
(6) 如何經過OAuth2獲取微信用戶信息並顯示在SAP UI5應用中
(7) 使用Redis存儲微信用戶和公衆號的對話記錄
(8) 微信公衆號的地圖集成
(9) 如何將微信用戶發送到微信公衆號的消息保存到SAP C4C系統
(10) 如何在SAP C4C系統直接回復消息給微信公衆號的訂閱者git

最近有很多朋友在微信上向我諮詢SAP系統和微信公衆號集成的問題,所以我把當時寫的英文版翻譯成中文,從新發布在個人公衆號上。github

須要注意的是,時隔三年,微信公衆號的開發流程可能有所變化,請你們自行鑑別。和微信公衆號集成的系統,我三年前選擇的是SAP Cloud for Customer.web

始終牢記咱們這個系列的目標是學會如何用微信公衆號同SAP系統(SAP Cloud for Customer,如下簡稱C4C)集成。要實現這個目標,就得經過微信公衆號消費SAP C4C的OData API.express

做爲學習的第一步,咱們首先學習如何在微信公衆號調用普通的API,而非SAP C4C OData API.編程

假設這樣一個簡單的場景:用戶關注微信公衆號以後,經過微信app給公衆號發送一些文字信息。公衆號收到這些文字信息,會轉發給咱們在本系列第一篇文章 微信開發環境的搭建 裏提到的微信消息服務器。此時微信消息服務器接收到轉發過來的文字信息後,調用一些具備人工智能的API,將API的響應經過微信app回覆給用戶。服務器

綁定了微信消息服務器的微信公衆號,在這個場景裏扮演的其實就是一個簡單的聊天機器人的角色。用戶和微信公衆號經過一問一答的方式進行交互。微信

Jerry還記得上大學的時候,學習《Unix網絡編程》這門專業課,一個練習就是,經過套接字自行實現一對客戶端和服務器,客戶端發送一個字符串給服務器,服務器接收後原封不動地將其返回,即所謂的Echo Server.網絡

在動手實現微信聊天機器人以前,咱們先下降難度,實現一個簡單的微信echo服務,即不管用戶發送任何信息給公衆號,都會收到信息自己,再加上"Add by Jerry"的前綴。微信開發

本文用到的項目完整源代碼,在個人Github可以下載。

首先在server.js裏,利用nodejs express庫啓動一個web服務器:

上圖第二行routesEngine的實現,位於index.js裏。微信app收到用戶經過微信app發送的文本消息時,會經過一個HTTP POST請求轉發給微信消息服務器。微信消息服務器接收到該請求後,調用第五行的echoService處理:

echoService的實現位於文件echo.js中:首先從變量req包含的HTTP請求中,將用戶輸入的文本信息解析出來(第11行),而後加上"Add by Jerry: "的前綴,並將結果存儲在變量content裏(第13行), 最後調用本身開發的工具方法replyMessage,將加上前綴的文本信息返回給用戶。

上圖第15行的replyMessage工具方法,須要從微信app轉發給微信消息服務器的HTTP POST請求裏, 解析出發送消息的微信用戶id,而後再將拼接了"Add by Jerry: "前綴的內容發送給該id標識的微信用戶。

replyMessage的實現位於replyMessage.js中:

有了Echo Service的實現經驗以後,再實現微信聊天機器人就沒有什麼難度了。

只須要把index.js裏接收到HTTP Post請求以後的操做,從調用echoService改爲調用新的實現,tuningService便可。

調用圖靈API的tuningService函數的實現源代碼在這裏下載。

我2017年的時候使用的圖靈API是以下網站提供的:

申請一個API key, 粘貼到下圖第6行的url裏:

將用戶輸入的文本信息解析出來,存儲到第20行的body變量裏,使用encodeURI處理以後,直接拼接到圖靈API url尾部,而後第27行使用request函數調用圖靈API. 在匿名回調函數裏得到API的響應,最後調用工具方法replyMessage將響應經過微信消息服務器發送給微信app.

本系列的下一篇文章,咱們會真正開始和SAP系統的集成:每當新的微信用戶關注微信公衆號時,咱們會自動爲該微信用戶在SAP C4C系統建立一個客戶主數據。

感謝閱讀。

本系列的其餘文章

(1) 微信開發環境的搭建
(2) 如何經過微信公衆號消費API(本文)
(3) 微信用戶關注公衆號以後,自動在SAP C4C系統建立客戶主數據
(4) 如何將SAP C4C主數據變化推送給微信公衆號
(5) 如何將SAP UI5應用嵌入到微信公衆號菜單中
(6) 如何經過OAuth2獲取微信用戶信息並顯示在SAP UI5應用中
(7) 使用Redis存儲微信用戶和公衆號的對話記錄
(8) 微信公衆號的地圖集成
(9) 如何將微信用戶發送到微信公衆號的消息保存到SAP C4C系統
(10) 如何在SAP C4C系統直接回復消息給微信公衆號的訂閱者

更多Jerry的原創文章,盡在:"汪子熙":

相關文章
相關標籤/搜索