SAP系統和微信整合的系列教程之二:如何通過微信公眾號消費API
本系列的英文版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回覆給使用者。
繫結了微信訊息伺服器的微信公眾號,在這個場景裡扮演的其實就是一個簡單的聊天機器人的角色。使用者和微信公眾號通過一問一答的方式進行互動。
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的原創文章,盡在:"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2747833/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微信公眾號讚賞功能開通方法 微信公眾號讚賞如何開通
- 微信程式開發系列教程(四)使用微信API建立公眾號自定義選單API
- 如何打通 SAP Cloud for Customer 系統和微信公眾號的雙向訊息通訊功能Cloud
- SAP系統和微信整合的系列教程之一:微信開發環境的搭建開發環境
- 微信公眾號投票活動製作教程 微信公眾號投票怎麼弄?
- 微信公眾號和微信軟文采集網站網站
- 【微信部落】tp5+ionic開發微信公眾號商城系統
- 微信公眾號正文如何插入附件
- 微搜網·微信公眾號大全
- 微信公眾號的留言功能
- 微信公眾號開發
- 微信公眾號智慧回答
- 微信公眾號託管
- 微信公眾號接入線上客服系統的方式
- [作品釋出]「信達」通過微信公眾號控制你的伺服器伺服器
- 今天,騰訊NintendoSwitch開通官方微博、微信公眾號
- 微信sdk 公眾號 微信支付 NFC 坑&筆記筆記
- 微信公眾號-入門的坑
- 微信公眾號選單的配置
- 教你微信公眾號報名的製作方法 微信公眾號報名怎麼用?
- Nodejs微信公眾號開發NodeJS
- 本地測試微信公眾號
- .net開發微信公眾號
- 微信公眾號開發-分享
- 微信公眾號介面導讀
- 微信公眾號獲取AccessToekn
- 微信公眾號影片直播系統開發介紹
- thinkphp5.0.11開發微信公眾號通用系統PHP
- 微信公眾號如何運用seo引流(微信SEO的6個排名技巧)
- Python開發微信公眾號後臺(系列二)Python
- 微信公眾號開發教程(一) 驗證接入
- 微信開發系列之一 - 微信公眾號開發的開發環境搭建開發環境
- 微信公眾號排版 | 彙總和實戰
- TNW-微信公眾號中如何使用JSSDKTNWJS
- 微信公眾號上如何上傳excel表格?Excel
- 國慶節微信公眾號活動分享,如何做好十一國慶節微信公眾號活動
- 微信公眾號簽到積分的功能怎麼製作?微信公眾號簽到積分的功能製作教程
- python + flask 開發的微信公眾號和文章管理系統PythonFlask