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