SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API

i042416發表於2021-01-06

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

系列目錄

(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系統直接回復訊息給微信公眾號的訂閱者

最近有不少朋友在微信上向我諮詢SAP系統和微信公眾號整合的問題,因此我把當時寫的英文版翻譯成中文,重新發布在我的公眾號上。

需要注意的是,時隔三年,微信公眾號的開發流程可能有所變化,請大家自行鑑別。和微信公眾號整合的系統,我三年前選擇的是SAP Cloud for Customer.

始終牢記我們這個系列的目標是學會如何用微信公眾號同SAP系統(SAP Cloud for Customer,以下簡稱C4C)整合。要實現這個目標,就得通過微信公眾號消費SAP C4C的OData API.

作為學習的第一步,我們首先學習如何在微信公眾號呼叫普通的API,而非SAP C4C OData API.

假設這樣一個簡單的場景:使用者關注微信公眾號之後,通過微信app給公眾號傳送一些文字資訊。公眾號收到這些文字資訊,會轉發給我們在本系列第一篇文章 微信開發環境的搭建 裡提到的微信訊息伺服器。此時微信訊息伺服器接收到轉發過來的文字資訊後,呼叫一些具有人工智慧的API,將API的響應通過微信app回覆給使用者。


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


繫結了微信訊息伺服器的微信公眾號,在這個場景裡扮演的其實就是一個簡單的聊天機器人的角色。使用者和微信公眾號通過一問一答的方式進行互動。


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


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

在動手實現微信聊天機器人之前,我們先降低難度,實現一個簡單的微信echo服務,即無論使用者傳送任何資訊給公眾號,都會收到資訊本身,再加上"Add by Jerry"的字首。


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


本文用到的專案完整原始碼,在我的 Github能夠下載。

首先在server.js裡,利用nodejs express庫啟動一個web伺服器:


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


上圖第二行routesEngine的實現,位於index.js裡。微信app收到使用者通過微信app傳送的文字訊息時,會通過一個HTTP POST請求轉發給微信訊息伺服器。微信訊息伺服器接收到該請求後,呼叫第五行的echoService處理:


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


echoService的實現位於檔案echo.js中:首先從變數req包含的HTTP請求中,將使用者輸入的文字資訊解析出來(第11行),然後加上"Add by Jerry: "的字首,並將結果儲存在變數content裡(第13行), 最後呼叫自己開發的工具方法replyMessage,將加上字首的文字資訊返回給使用者。


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


上圖第15行的replyMessage工具方法,需要從微信app轉發給微信訊息伺服器的HTTP POST請求裡, 解析出傳送訊息的微信使用者id,然後再將拼接了"Add by Jerry: "字首的內容傳送給該id標識的微信使用者。

replyMessage的實現位於 replyMessage.js中:


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


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

只需要把index.js裡接收到HTTP Post請求之後的操作,從呼叫echoService改成呼叫新的實現,tuningService即可。


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


呼叫圖靈API的tuningService函式的實現原始碼在 這裡下載。

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


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


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


SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


將使用者輸入的文字資訊解析出來,儲存到第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的原創文章,盡在:"汪子熙":

SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API


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

相關文章