【问题标题】:Slack API: Do Something when button is clickedSlack API:单击按钮时执行某些操作
【发布时间】:2016-08-19 14:02:16
【问题描述】:

我正在使用 Python,它是 Slacker API 将消息发布到松弛通道,并且它可以很好地发布消息。

现在我想做的是创建一个按钮,上面写着更多信息,当它被点击时,我想显示一个项目列表。 但是当按钮被点击时,slackbotoh 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)

当我点击 More info 按钮时,这就是 Slack 中的样子。

感谢任何帮助!谢谢:)

【问题讨论】:

  • 嗨@Parth,你能解释一下为什么你写了一个Python代码来完成这个任务吗?你在哪里运行这个脚本?
  • @Kourosh 我使用的是Slacker,它是 Slack API 的 Python 包装器。我将脚本部署在我们公司的一台本地服务器上。
  • 很有趣,但我正在使用 Elasticsearch 来查询我的数据,如果我遇到任何失败,我会在我的频道中发布松弛通知,所以我认为运行脚本在我的情况下不会起作用。不过感谢您的回复。

标签: python slack-api slack


【解决方案1】:

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

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

  1. 如果您还没有创建一个 Slack 应用程序。
  2. 创建一个 oauth GET 端点(例如/slack/authorize
  3. 将您的 Slack 应用的“重定向 URI”设置为您的身份验证端点
  4. 您的端点应该在其查询参数中期望code。使用您的应用程序的client_idclient_secretcode 调用 Slack API oauth.access 以交换上述应用程序令牌。要从机器人发布交互式消息,您需要机器人令牌(前缀为“xoxo-”)。

【讨论】:

  • 谢谢,你是对的,我必须创建一个端点。 Slack API 文档有点杂乱无章,很难弄明白。
  • 我对此有疑问。根据 api 文档,对用户按钮操作的响应会替换原始消息。
  • @ramin 您不需要替换原始消息,但您可以将原始消息的 message_ts(时间戳)附加到 chat.update API。
  • @ParthBhoiwala 是的,这是 Slack 的一个烂文档!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
  • 2012-11-15
相关资源
最近更新 更多