本系列的英文版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的原创文章,尽在:“汪子熙”:

SAP系统和微信集成的系列教程之二:如何通过微信公众号消费API相关推荐

  1. SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发环境的搭建 (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自 ...

  2. SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 最近有不少朋友在微信上向我咨询SAP系统和微信公众号集成的问题,因此我把当时写的英文版翻译成中文,重新发布在我 ...

  3. sap系统搭建教程_SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户...

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上: https://blogs.sap.com/2017/12/10/wechat-development-ser ...

  4. sap 发送mesage_SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统...

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 最近有不少朋友在微信上向我咨询SAP系统和微信公众号集成的问题,因此我把当时写的英文版翻译成中文,重新发布在我 ...

  5. 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境

    提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...

  6. RabbitMQ系列教程之二:工作队列(Work Queues)

    今天开始RabbitMQ教程的第二讲,废话不多说,直接进入话题.   (使用.NET 客户端 进行事例演示) 在第一个教程中,我们编写了一个从命名队列中发送和接收消息的程序.在本教程中,我们将创建一个 ...

  7. github打开前端样式丢失_微信小程序入门教程之二:页面样式

    这个系列的上一篇教程,教大家写了一个最简单的 Hello world 微信小程序. 但是,那只是一个裸页面,并不好看.今天接着往下讲,如何为这个页面添加样式,使它看上去更美观,教大家写出实际可以使用的 ...

  8. image 微信小程序flex_微信小程序入门教程之二:页面样式

    这个系列的上一篇教程,教大家写了一个最简单的 Hello world 微信小程序. 但是,那只是一个裸页面,并不好看.今天接着往下讲,如何为这个页面添加样式,使它看上去更美观,教大家写出实际可以使用的 ...

  9. SAP系统和微信集成的系列教程之七:使用Redis存储微信用户和公众号的对话记录

    这是Jerry 2020年的第88篇文章,也是汪子熙公众号总共第269篇原创文章. 本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发 ...

最新文章

  1. 02CSS基础选择器
  2. linux 链接ln的使用 创建和删除符号连接(软、硬链接)
  3. request mysql 接口_TP5接口开发
  4. 将json字符串转换为json对象
  5. 分治 —— 简单分治
  6. 内核并发控制---完成量 (来自网易)
  7. 拼多多、微博等在新一轮经济变化中将做出更大贡献
  8. python支持按指定字符串分割成数组_按固定元素数目分割数组- perl,python
  9. 51单片机c语言xdata,新概念51单片机c语言教程ppt
  10. 锋利Jquery 第一天
  11. html黑科技导入res,css黑科技
  12. C Primer Plus(6) 中文版 第5章 运算符、表达式和语句 5.2 基本运算符
  13. 【暮色天】行情反复 愈挫愈勇(1.15)
  14. GN+NINJA环境搭建(MacOS Windows)
  15. XDRender_LightModeFeature_CauseLight 焦散1-DropRain
  16. 旧安卓手机|简洁日历APP
  17. 关于windows清理C盘问题
  18. 史上最全的ubuntu服务器搭建环境教程~~~
  19. kafka.common.InconsistentClusterIdException: The Cluster ID 8ytUwdxNRXqINczxiKozcA doesn‘t match sto
  20. STK加载地图与高清影像图

热门文章

  1. 子曾经曰过,当心累了的时候,身体也会垮台。
  2. 百度的凤巢广告系统多了些什么?
  3. xge_mac学习(2) -- 模块结构
  4. Unity 从零开始做游戏
  5. 信息安全快讯2017年8月第1期
  6. 【转载】vscode占满cpu的解决方法(rg.exe占用)
  7. SpringData入门
  8. JS实现将汉字转成拼音实例
  9. 程序员为向师弟师妹炫技,黑了母校!结果不太妙……
  10. 聊聊keil的外部文件引用