企業級應用系統和微信集成的系列教程之七:使用Redis存儲微信用戶和公眾號的對話記錄

      網友投稿 646 2025-03-31

      最近有不少朋友在微信上向我咨詢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.

      自己運營過公眾號的朋友們都知道,粉絲和公眾號的對話消息,只能保持5天。因此就萌生了一個需求:將粉絲和公眾號的聊天記錄持久化,比如保存到某數據庫里,過后可以隨時讀取出來,進行進一步分析。

      本文會介紹,將粉絲和公眾號的對話,保存到Redis(一個Key-Value存儲系統)的實現步驟。

      Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,javaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。

      Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得Redis可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。由于完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道并接收主服務器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。

      首先在微信app里同微信公眾號對話:

      上圖展示的微信公眾號的智能回復功能,其實現方式,在本系列之前的文章:SAP系統和微信集成的系列教程之二:如何通過微信公眾號消費API 里做過介紹。

      按照本系列第五篇文章:如何將SAP UI5應用嵌入到微信公眾號菜單中 里介紹的方法,給公眾號增添兩個新的菜單:Review和Delete.

      Review菜單負責把Redis里存儲的聊天記錄讀取出來,展示在微信app里;Delete菜單負責清空Redis里的數據。

      點擊Review菜單之后的效果如下圖所示:

      四個字段的解釋:

      from:消息的發送方

      to: 消息的接收方

      question:粉絲向公眾號提出的問題

      answer: 公眾號調用圖靈API,返回的答復

      點了Delete菜單之后的效果:聊天記錄被清空。

      下面是實現步驟。

      很多云平臺都提供了對Redis的支持,這個系列我選擇的云平臺是Heroku.

      打開HeroKu的Redis控制臺,從應用列表里選擇要啟用Redis服務的應用:wechatjerry.

      Heroku默認的Redis plan:Hobby Dev僅用于開發用途,完全免費。

      企業級應用系統和微信集成的系列教程之七:使用Redis存儲微信用戶和公眾號的對話記錄

      點擊Provision按鈕之后,在Heroku應用的控制臺里,能看到Redis已經出現在應用wechatjerry的Addons列表里。

      應用變量REDIS_URL包含了當前可用的Redis實例的url,我們之后的nodejs代碼里,會使用這個url訪問該Redis實例。

      調用微信API給公眾號創建兩個新的菜單,Review和Delete,使用如下的payload:

      然后在微信消息服務器實現里,在將回復通過下圖第22行的replyMessage函數推送給微信用戶之前,插入21行的conversationLogService模塊的log函數調用,將對話記錄存儲到Redis中。

      conversationLogService實現的完整代碼,在我的Github上。

      里面調用了nodejs版的一個開源Redis客戶端:

      https://github.com/NodeRedis/node-redis

      最后,實現Review和Delete公眾號菜單的點擊響應函數,分別調用conversationLogService的getLog和deleteLog方法,執行對應的Redis操作。

      本系列的下一篇文章,會介紹如何將地圖控件集成到微信公眾號中去,感謝閱讀。

      系列目錄

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

      ABAP ERP Redis 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel取整函數的使用教程
      下一篇:【華為云學院】喚醒萬物,玩轉物聯!速來了解實用的物聯網技術和應用,零基礎也能輕松掌握。
      相關文章
      亚洲精品无码不卡在线播HE| 亚洲国产品综合人成综合网站| 亚洲视频在线观看视频| 亚洲精品无码乱码成人| 亚洲国产成人久久一区久久| 亚洲精品免费网站| 亚洲综合久久一本伊伊区| 久久精品亚洲一区二区三区浴池| 亚洲AV无码乱码在线观看富二代| 亚洲精品无码mv在线观看网站 | 亚洲香蕉久久一区二区| 亚洲在成人网在线看| 亚洲精品在线网站| 亚洲欧洲日韩国产| 亚洲五月丁香综合视频| 亚洲人片在线观看天堂无码| 亚洲人成色777777精品| 国产精品亚洲专区一区| 亚洲国产中文v高清在线观看| 亚洲色偷偷狠狠综合网| 国产亚洲精品久久久久秋霞| 亚洲精品无码久久久久去q| 亚洲ⅴ国产v天堂a无码二区| 精品日韩亚洲AV无码一区二区三区 | 亚洲爆乳少妇无码激情| 夜色阁亚洲一区二区三区| 亚洲国产一区视频| 亚洲国产一成人久久精品| 久久亚洲一区二区| 久久久久亚洲AV成人片| 亚洲人成电影青青在线播放| 亚洲13又紧又嫩又水多| 亚洲精品女同中文字幕| 亚洲精品尤物yw在线影院| 狠狠亚洲婷婷综合色香五月排名 | 亚洲第一街区偷拍街拍| 亚洲成年看片在线观看| 亚洲深深色噜噜狠狠爱网站| 亚洲男人天堂2017| 色噜噜亚洲男人的天堂| 国产成人亚洲综合在线|