SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统
本系列的英文版Jerry寫作于2017年,這個教程總共包含十篇文章,發表在SAP社區上。
最近有不少朋友在微信上向我咨詢SAP系統和微信公眾號集成的問題,因此我把當時寫的英文版翻譯成中文,重新發布在我的公眾號上。
需要注意的是,時隔三年,微信公眾號的開發流程可能有所變化,請大家自行鑒別。和微信公眾號集成的系統,我三年前選擇的是SAP Cloud for Customer.
系列目錄
(1)?微信開發環境的搭建
(2)?如何通過微信公眾號消費API
(3)?微信用戶關注公眾號之后,自動在SAP C4C系統創建客戶主數據
(4)?如何將SAP C4C主數據變化推送給微信公眾號
(5)?如何將SAP UI5應用嵌入到微信公眾號菜單中
(6)?如何通過OAuth2獲取微信用戶信息并顯示在SAP UI5應用中
(7)?使用Redis存儲微信用戶和公眾號的對話記錄
(8)?100行代碼在微信公眾號里集成地圖搜索功能
(9) 如何將微信用戶發送到微信公眾號的消息保存到SAP C4C系統(本文)
(10) 如何在SAP C4C系統直接回復消息給微信公眾號的訂閱者
本文實現的場景是:
微信用戶點擊“關注”按鈕,關注了某微信公眾號之后:
在SAP C4C系統自動生成了下列數據:
(1) 一個代表該微信用戶的individual customer主數據
(2) 一個綁定到customer主數據的C4C Social Media User Profile
這兩條數據的ID,會通過微信消息推送回微信用戶的微信app上:
這些成功創建的C4C數據的ID,在微信消息服務器,即nodejs應用的控制臺上也能觀察到:
根據返回給微信用戶的客戶主數據ID,到C4C系統找到該主數據,在其Social Profiles面板里,能看到該Social Profile的渠道類型(Channel Type)為自定義的Jerry’s Wechat Channel:
一旦微信用戶給微信公眾號發送文本信息,該文本信息通過微信公眾號的消息服務器作為中轉,調用C4C API,在C4C系統創建一條內容為該文本信息的Social Media Message數據。
下圖是一個例子:我發送一條"Hello C4C Agent …"的文本信息,在SAP C4C系統創建的Social Media Message ID為59610:
根據ID在C4C系統找到這條Social Media Message:
同時,C4C系統還會基于新建的Social Media Message,自動生成一條新的Service Ticket,這是C4C系統的標準功能,無需額外編程實現。這個標準功能也是本系列最后一篇文章,即如何在SAP C4C系統直接回復消息給微信公眾號的訂閱者 工作的前提條件。
下面是這個場景具體的實現步驟。
打開C4C配置的Activity List:
創建一個自定義Channel:
記下這個新建Channel的Type Code:905
基于上圖的Channel 905創建一個新的Social Media Channel,ID為ZJERRYWC:
在我這個Github倉庫下有個service文件夾,包含了三個JavaScript文件:
(1) createAccountInC4C.js:負責微信用戶關注微信公眾號之后, 調用C4C OData API創建individual customer.
(2) createSocialMediaProfile.js:調用API創建C4C Social Media Profile.
(3) bindSocialProfileWithIndividualCustomer.js: 負責將前兩步創建的C4C數據綁定起來。
在第二步創建Social Media Profile時,調用C4C API傳入的輸入負載里,將ChannelCode硬編碼成之前在C4C系統里新建的自定義Channel的Type Code:905
在createAccountInC4C.js的實現里,這三步按順序實現在函數createAccount里:
在微信消息服務器的事件處理函數里,一旦接收到“關注”事件( 事件類型值:subscribe)時,調用createAccount函數,完成上述三個步驟:
微信用戶關注了公眾號之后,發送文本消息給該公眾號,微信消息服務器調用createSocialMediaActivity.js里的函數createSocialMessage, 在C4C系統里創建一條新的Social Media Message.
在unittest文件夾下有一個單元測試用例,展示了該函數的用法。
五個輸入參數:
(1) o0KlM1i2_4-zHRm-IWGRlA1Cjc:發送消息給微信公眾號的微信用戶ID
(2) 1003: 待創建的Social Media Message ID,傳一個非空值即可,因為C4C系統會根據自己的Number Range生成該ID,并返回給API調用者。
(3) 6066: 當前微信用戶在C4C系統里對應的Social Media User Profile ID,該ID是在微信用戶關注公眾號時,在C4C系統生成并返回的。
(4) ZJERRYWC: 之前已經介紹過,在C4C系統手動創建的自定義Channel ID.
(5) “Hello C4C Agent….”: 微信用戶發送給微信公眾號的文本信息。
使用函數createSocialMessage,在C4C系統創建以微信用戶發送給微信公眾號的文本信息作為內容的Social Media Message,創建成功后返回其ID給微信用戶:59160.
根據ID 59160到C4C系統查詢到該Social Media Message,檢查其Message字段的值,同微信用戶發送給微信公眾號的文本信息完全一致。
本系列的最后一篇文章,我們將學習如何直接在C4C系統,回復文本消息給微信用戶。感謝閱讀。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖南的湖是指哪个湖 原来是这个湖
- 下一篇: SAP系统和微信集成的系列教程之十:如何