Slack API:单击按钮时执行某些操作

时间:2016-08-19 14:02:16

标签: python slack-api slack

我正在使用Python和它的Slacker API将消息发布到一个松散的通道,它正在很好地发布消息。

现在我要做的是创建一个按钮,上面写着更多信息,当点击它时,我想显示一个项目列表。 但是,点击该按钮后,slackbot会显示oh no, something weng wrong, Please try that again

以下是一个示例:link

下面是我的json和代码

msg = "<!here> Hello guys! "
moreInfo = ['person', 'person2', 'person3']
message = [{
"title": "Lunch time has been decided",
"text": "You will also be joining",
"actions": [
    {
        "name": "buttonName",
        "text": "More Info",
        "type": "button",
        "value": moreInfo
    }]

}]
slack.chat.post_message('#teamChannel', msg, username='my_username', attachments=message)

当我点击更多信息按钮时,这就是Slack的样子。 enter image description here

任何帮助表示赞赏!谢谢:))

1 个答案:

答案 0 :(得分:3)

您是否已经设置了按钮端点?如果没有,您将看到该错误消息。

或者如果你犯了同样的错误,你使用的是不正确的令牌。这从Slack文档中是不明显的。您可以使用自定义集成机器人令牌发布消息,包括使用附件(即交互式按钮)。但是,如果您想实际响应按下按钮,则需要使用完整的Slack应用程序令牌发布消息(即使您不打算将应用程序发布到野外)。这意味着为您的oauth2流程创建一个端点,将您的应用程序添加到Slack团队,并在那里获取您的机器人令牌。

  1. 如果您还没有创建一个Slack应用程序。
  2. 创建oauth GET端点(例如/slack/authorize
  3. 设置您的Slack应用&#34;重定向URI&#34;到你的auth端点
  4. 您的终端应该在其查询参数中预计code。使用您应用的oauth.accessclient_idclient_secret来调用Slack API code以换取上述应用令牌。要从机器人发布交互式消息,您将需要机器人令牌(前缀&#34; xoxo - &#34;)。