我在 slack 上创建了一个斜杠命令。
但是,当我触发它时,我在服务器上收到的发布请求如下:
{'version': '2.0',
'routeKey': 'POST /server',
'rawPath': '/Work/server',
'rawQueryString': '',
'headers': {'accept': 'application/json,*/*',
'accept-encoding': 'gzip,deflate',
'content-length': '421',
'content-type': 'application/x-www-form-urlencoded',
'host': 'xxx',
'user-agent': 'Slackbot 1.0 (+https://api.slack.com/robots)',
'x-amzn-trace-id': 'xxx',
'x-forwarded-for': 'xxx',
'x-forwarded-port': '443',
'x-forwarded-proto': 'https',
'x-slack-request-timestamp': '1616684124',
'x-slack-signature': 'xxx'},
'requestContext': {'accountId': '255912899710',
'apiId': 'xxx',
'domainName': 'xxx',
'domainPrefix': 'xxx',
'http': {'method': 'POST',
'path': '/Work/Slack_interaction',
'protocol': 'HTTP/1.1',
'sourceIp': '3.89.205.168',
'userAgent': 'Slackbot 1.0 (+https://api.slack.com/robots)'},
'requestId': 'cv6edg75iGYEJaQ=',
'routeKey': 'POST /Slack_interaction',
'stage': 'Work',
'time': '25/Mar/2021:14:55:24 +0000',
'timeEpoch': 1616684124418},
'body': 'xxxtokenxxx',
'isBase64Encoded': True}
我没有得到任何 command
或 text
键,因为它应该是根据 doc。
有人知道发生了什么吗?
谢谢
答案 0 :(得分:0)
这里的问题是交互的细节在有效载荷的正文中,该正文当前按照字段 'isBase64Encoded': True 的建议进行编码
您应该能够在解码后获得所需的所有信息。我的实现使用了 python 的 base64 library,但我相信您可以找到适合您使用的任何语言的等效工具。
像 slack bolt 这样的库也会为您处理这一步。
请注意,根据我的测试,所有交互负载都按此编码,另一方面,事件负载不是,可以直接解析