本系列的英文版Jerry写做于2017年,这个教程总共包含十篇文章,发表在SAP社区上。node
(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系统直接回复消息给微信公众号的订阅者git
最近有很多朋友在微信上向我咨询SAP系统和微信公众号集成的问题,所以我把当时写的英文版翻译成中文,从新发布在个人公众号上。github
须要注意的是,时隔三年,微信公众号的开发流程可能有所变化,请你们自行鉴别。和微信公众号集成的系统,我三年前选择的是SAP Cloud for Customer.web
始终牢记咱们这个系列的目标是学会如何用微信公众号同SAP系统(SAP Cloud for Customer,如下简称C4C)集成。要实现这个目标,就得经过微信公众号消费SAP C4C的OData API.express
做为学习的第一步,咱们首先学习如何在微信公众号调用普通的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的原创文章,尽在:"汪子熙":