Slack Incoming Webhooks - Изменить URL действия? - PullRequest
1 голос
/ 04 октября 2019

Мне непонятно после прочтения документации Slack по поводу Incoming Webhooks. Похоже, что есть какие-то двусмысленности в отношении входящих веб-хитов и постов через их API чата. Похоже, если я позвоню из https://my -application.yxz / api / notify? Key = 123123123123 и оттуда отправлю сообщение Slack, то кнопки действий Slack ответят на тот же URL, но яне могу подтвердить это.

https://api.slack.com/docs/message-attachments

Я успешно отправляю сообщения на указанный канал, но не могу понять, как получить ответ или изменитьURL, на который действия будут отправлять свои полезные данные. Это вообще возможно?

Для контекста кода ниже я использую Laravel. В идеале я хотел сохранить только URL-адрес Slack Webhook в настройках пользователя для местоположения своего магазина, чтобы они могли получать уведомления Slack, вызванные попаданием нашего API.

Это полезная нагрузка, которую я отправляю в webhook ион работает нормально, однако я хотел бы добавить функциональные кнопки и опубликовать полезную нагрузку на моем внешнем сайте. Я не уверен, что Incoming Webhooks - даже правильный подход. Может кто-нибудь пролить свет на это?

# $helpdesk  => contains webhook URL and other details 
# $prompt    => just some text
# $prompt_id => id associated with prompt object passed into the function this is found in
# $device    => the source of this prompt

$payload = json_encode([
        "text" => "A customer at $device->name requires attention",
        "username"=>"Our Alert Thing",
        "icon_emoji"=>":wave:",
        "attachments"=> [
            [
                "fallback"=> $prompt,
                "author_name"=> "Customer @ $device->name",
                "title"=> $prompt,
                "text"=> "Let them know if you can help",
                "callback_id"=> "csprompt_".$prompt_id,
                "color"=> "#24ACE2",
                "actions"=> [
                    [
                        "name"=> "action",
                        "type"=> "button",
                        "text"=> "I call dibs",
                        "style"=> "primary",
                        "value"=> "helping",
                    ],
                ]
            ]
        ]
    ]);

    $res = $client->post($helpdesk->slack_webhook, ['body'=>$payload]);

1 Ответ

0 голосов
/ 10 октября 2019

Вы не можете программно установить URL своего действия. Slack отправит все интерактивные запросы сообщений (например, от пользователя, нажимающего на одну из ваших кнопок) на «URL запроса», который вы настроили для своего приложения Slack.

Проверьте эту ссылку для получения подробной информации о том, где можно найти URL-адрес запроса.

Технически я думаю, что вы можете использовать входящие webhooks , но я бы порекомендовалиспользуя API с chat.postMessage, потому что входящие веб-хуки очень ограничены. например, они могут использоваться только с одним предварительно настроенным каналом.

...