通过飞书机器人调用SAP服务 (1/3)
james
2021.06.23 11:30发布于技术 - 新手入门
1.09k1
本例描述的是让用户在飞书聊天群里用户呼叫飞书机器人,调用后端Mendix服务,返回SAP查询信息给飞书聊天群。

本例子描述的场景是让用户在飞书聊天群里通过输入凭证单据号,公司法人和财政年度这3个字段,呼叫飞书机器人,飞书机器人在后端查询SAP财务凭证明细信息,返回给飞书聊天群。

整体实现逻辑:在Mendix上创建可消费的RESTFUL服务,在服务中获得飞书机器人发出的消息,首先按消息体原样 echo 回飞书去,让飞书获得消息已经送达的确认。然后解析用户输入的三个字段入参(BELNR单据号,RBUKRS公司,GJAHR年度),调用SAP Odata服务查询SAP数据。获得数据后,在向飞书发送消息前,用飞书机器人预设的appid和app_secret调用飞书API获得token, 然后通过token再调用飞书API把查询获得的消息发送给飞书聊天群指定用户。

第一部分 飞书机器人设置

在飞书上创建机器人,填写事件订阅-请求网址信息:

图片2.png

用户在飞书群里@机器人后发出的消息,会以POST方式发送到这个URL地址, 这个地址就是后面下一步在Mendix中创建的可消费的Restful服务的地址。

在飞书控制台,添加机器人订阅事件:

图片3.png

在飞书控制台,添加机器人权限:

图片4.png

在飞书开发平台后端,获得该飞书机器人关键信息:App ID、App Secret、Verification Token。

填写网址后,飞书系统会向这个网址发送一个 POST 请求。这个请求的内容如下:

POST /sspai HTTP/1.1 Host: fs.xxx.xxx Content-Length: 121 User-Agent: Go-http-client/1.1 Content-Type: application/json;charset=utf-8 X-Request-Id: 17212xxxxxxx Accept-Encoding: gzip {"challenge":"b715df13-587e-48e8-acf4-84d3e8dbaa51","token":"9a86Lk3lTNsXhNmu4Jkwce6NO1cje7yR","type":"url_verification"}

按照飞书官方的要求,应用接收此请求后,需要解析出 CHALLENGE 值,并于 1 秒内回复 CHALLENGE 值。

根据实际测试,超出1秒目前飞书也没有重新呼叫。不过由于回复的消息体仍然需要使用 json 格式,并且飞书服务器只读取 challenge 值,因此可以把发过来的消息体原样 echo 回去,并不需要从请求体的 json 数据中解析出 challenge 值。

颂文Gavin、收费的阳光
点赞
收藏
手机查看
举报
1个评论
倒序看帖
仅看楼主
    收费的阳光
    2021.06.24 16:13 发布
    #1

    看样子也可以在企业微信机器人上搞一下?😋

    首赞
    评论
    举报