querylist采集微信公众号文章(如何用微信公众号同SAPC4C的ODataAPI.?)
优采云 发布时间: 2022-03-25 07:24querylist采集微信公众号文章(如何用微信公众号同SAPC4C的ODataAPI.?)
最近有很多朋友问我微信上SAP系统和微信公众号的整合,所以我把当时写的英文版翻译成中文重新发布到我的公众号上。
需要注意的是,三年后,微信公众号的开发流程可能会发生变化,请自行识别。系统集成了微信公众号,三年前我选择了SAP Cloud for Customer。
永远记住,我们系列的目标是学习如何使用微信公众号与SAP系统(SAP Cloud for Customer,以下简称C4C)集成。要实现这个目标,需要通过微信公众号使用SAP C4C的OData API。
作为学习的第一步,我们首先学习如何调用微信公众号上的通用API,而不是SAP C4C OData API。
假设这样一个简单的场景:用户关注微信公众号后,通过微信应用向公众号发送了一些短信。公众号收到这些短信后,会转发到本系列第一篇文章中提到的微信消息服务器文章微信开发环境搭建。此时,微信消息服务器收到转发的文本信息后,会调用一些带有人工智能的API,并通过微信APP将API响应返回给用户。
与微信消息服务器绑定的微信公众号,在这个场景中实际上扮演了一个简单的聊天机器人的角色。用户与微信公众号通过问答方式进行互动。
Jerry 还记得,他上大学的时候,上过专业课《Unix 网络编程》。其中一个练习是通过套接字实现一对客户端和服务器。客户端向服务器发送了一个字符串,服务器完整地接收到了它。返回它,即所谓的 Echo Server。
在实现微信聊天机器人之前,我们先降低难度,实现一个简单的微信回显服务,即无论用户向公众号发送什么信息,都会收到信息本身,加上前缀“Add by Jerry”。
本文使用的项目的完整源代码可以从我的 Github 下载。
首先,在 server.js 中,使用 nodejs express 库来启动一个 web 服务器:
上图第二行中routesEngine的实现位于index.js中。当微信app收到用户通过微信app发送的短信时,会通过HTTP POST请求转发给微信消息服务器。微信消息服务器收到请求后,调用第五行的echoService处理:
echoService 的实现位于文件 echo.js 中:首先从变量 req(第 11 行)中收录的 HTTP 请求中解析用户输入的文本信息,然后添加前缀“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 年使用的 Turing API 由以下 网站 提供:
申请API key,粘贴到下图第6行的url中:
解析用户输入的文本信息,在第20行存储到body变量中,使用encodeURI处理,直接拼接到图灵API url的末尾,然后使用request函数调用图灵API第27行,在匿名回调函数中获取API的响应,最后调用工具方法replyMessage,通过微信消息服务器将响应发送给微信app。