首页 > 解决方案 > 通过 api 读取传入 slack webhook 的信息

问题描述

按照通过添加到松弛按钮创建传入 webhook 的步骤。最终响应将如下所示:

{
"access_token": "xoxp-XXXXXXXX-XXXXXXXX-XXXXX",
"scope": "incoming-webhook,commands,bot",
"team_name": "Team Installing Your Hook",
"team_id": "XXXXXXXXXX",
"incoming_webhook": {
    "url": "https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX",
    "channel": "#channel-it-will-post-to",
    "configuration_url": "https://teamname.slack.com/services/BXXXXX"
},
    ....
}

这提供了对 team_name、webhook 将发布到的频道以及用于配置的 url 的访问权限。

虽然这很好用,并且在最初将“配置”存储到我自己的 web 应用程序之后,它会正确显示。但是在有人使用响应中的“configuration_url”链接后,这些先前的值(如通道)可能会过时。例如,可以从此链接中删除 webhook。

我的问题是:有没有办法在我的外部应用程序中反映这种变化?据我所知,无法通过来自外部 Web 应用程序的 api 调用查询“传入 webhook”的信息?

我也找不到任何可以在不使用提供的链接的情况下直接更改 webhook 配置的 api 调用。

标签: slackslack-api

解决方案


创建后无法更改 webhook 配置。唯一可能的更改是卸载了安装 Slack 应用程序(包含 webhook)的工作区。

如果发生这种情况,webhook 将不再工作,您将收到错误响应。

当您的应用程序被卸载时,您还可以通过监听app_uninstalled事件来获得通知。

或者,您还可以通过检查在 Add to Slack 过程中收到的令牌来测试您的应用程序和 webhook 是否仍然有效。auth.test只需使用该令牌调用 API 方法。如果它返回以下错误,则 webhook 不再有效:

{
    "ok": false,
    "error": "invalid_auth"
}

推荐阅读