【问题标题】:Can't get command in slack slash command request无法在 slack 斜杠命令请求中获取命令
【发布时间】:2021-06-22 10:58:09
【问题描述】:

我在 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}

我没有得到任何 commandtext 键,因为它应该是根据 doc

有人知道发生了什么吗?

谢谢

【问题讨论】:

    标签: slack slack-api slack-commands


    【解决方案1】:

    这里的问题是交互的细节在有效载荷的正文中,该正文当前按照字段“isBase64Encoded”的建议进行编码:True

    解码后,您应该能够获得所需的所有信息。我的实现使用了 python 的base64 library,但我相信你可以为你使用的任何语言找到一个等效的工具。

    slack bolt 这样的库也会为您处理这一步。

    请注意,根据我的测试所有交互有效负载都这样编码,另一方面,事件有效负载不是并且可以直接解析

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      相关资源
      最近更新 更多