Slack не отправил POST запрос на кнопку - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь реализовать следующее:

  1. python Сценарий отправляет сообщение для слабины с кнопкой и полезной нагрузкой,
  2. пользователь нажимает на кнопку в сообщении слабины, * 1006 Кнопка *
  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 в качестве «URL запроса» в «Интерактивных компонентах» и «Подписках на события» моего слабого приложения.

Когда я отправляю сообщение для бота POST-запрос отправляется на aws api.

Когда я нажимаю кнопку POST-запрос не отправляется.

Пробуется с обоими токенами xoxp- и xoxb-

1 Ответ

0 голосов
/ 17 февраля 2020

Проблема в том, что slack генерирует http-запрос странным образом. Вместо json он помещает «блоки» в следующую структуру:

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

после декодирования равен:

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

Это не читаемо, как json. AWS API отклонил эти слабые запросы.

AWS cloudwatch помогает исследовать проблему. Во избежание этого необходимо включить опцию «Использовать интеграцию с Lambda Proxy» при добавлении метода.

...