松弛未在按钮上发送POST请求

时间:2020-02-03 17:19:23

标签: post button bots slack

我正在尝试实现以下目标:

  1. python脚本使用按钮和有效负载将消息发送到松弛状态,
  2. 用户单击松弛消息中的按钮,
  3. 按钮将带有有效负载的POST发送到请求URL(aws api)

当前按钮不发送POST。

我使用以下python脚本伪造消息

slack_token = 'xoxp-1111-111-111-qqqqqq'
sc = slack.WebClient(slack_token)
sc.chat_postMessage(
    channel="QQQQQ",
    blocks=[
            {
                "type": "actions",
                "elements": [
                    {
                        "type": "button",
                        "text": {
                            "type": "plain_text",
                            "text": "send post"
                        }
                    }
                ]
            }
        ]
)

我在休闲应用的“交互组件”和“事件订阅”中添加了https://here.aws.api.amazonaws.com/default/lambda作为“请求网址”。

当我向机器人发送消息时,POST请求将发送到aws api。

当我单击按钮时,未发送POST请求。

尝试使用令牌xoxp-和xoxb-

1 个答案:

答案 0 :(得分:0)

问题是: 松弛以奇怪的方式生成http请求。代替json,它将“块”放入以下结构:

{ ...... 'body': (byte[])\"payload=%7B%22type%22%3A%22block_actions%2 ...}

解码后等于:

{...payload={"type": "block_actions",...}

像json这样不可读。 AWS API拒绝了这些延迟请求。

AWS cloudwatch帮助调查问题。 为了避免这种情况,必须在添加方法期间启用“使用Lambda代理集成”选项。