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