6

我正在构建并发送消息附件:

var zz = {
    "text": "Would you like to play a game??",
    "attachments": [
        {
            "text": "Choose a game to play",
            "fallback": "You are unable to choose a game",
            "callback_id": "wopr_game",
            "color": "#3AA3E3",
            "attachment_type": "default",
            "actions": [
                {
                    "name": "chess",
                    "text": "Chess",
                    "type": "button",
                    "value": "chess"
                }
            ]
        }
    ]
}

web.chat.postMessage(message.source.channel, '', zz);

带有按钮的消息在 Slack 上显示正常,但是当我点击一个按钮时,Slack 没有对我的本地 ngrok 或快速路由的 POST 响应:

app.post('/slackaction', function(req, res)

虽然其他消息可以正常发布到此路线。

点击按钮后,我从 Slack 看到此错误:

"Oh no, something went wrong. Please try that again"

Slack 交互式消息request_url设置为: https://xxx.ngrok.io/slackaction

4

1 回答 1

7

感谢 Taylor Singletary 的评论为我指明了正确的方向。

自定义集成的测试令牌或机器人令牌可以发布交互式消息,但您需要一个应用程序来处理它们。

要修复它,您需要在此处将机器人添加到您的应用程序:https ://api.slack.com/apps ,然后获取该机器人的访问令牌。

您可以在此处使用 Slack 按钮生成器:https ://api.slack.com/docs/slack-button#获取 OAuth URL 并将其粘贴到浏览器上。

然后从您的应用程序处理 OAuth 流,存储访问令牌并将其与 chat.postMessage 一起使用。

然后您应该在单击消息按钮时收到 POST 请求。

于 2016-09-02T19:59:12.050 回答