这是Jerry 2020年的第88篇文章,也是汪子熙公众号总共第269篇原创文章。
本系列的英文版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.
本人经营过公众号的敌人们都晓得,粉丝和公众号的对话音讯,只能放弃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仅用于开发用处,完全免费。
点击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/...
最初,实现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零碎间接回复音讯给微信公众号的订阅者
更多Jerry的原创文章,尽在:"汪子熙":