通过 api 阅读传入的 slack webhooks 的信息

Read Information for incoming slack webhooks via api

按照通过 add to slack button 创建传入 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 将 post 连接到的通道,以及用于配置的 url。

虽然效果很好,但在最初将 'configuration' 存储到我自己的 Web 应用程序后,它可以正确显示。但是在有人使用响应中的 'configuration_url' link 之后,这些以前的值(如通道)可能会过时。例如,可以从此 link 中删除 webhook。

我的问题是: 有没有办法在我的外部应用程序中反映这种变化?据我所知,无法通过外部 Web 应用程序的 api 调用查询 'incoming webhooks' 的信息?

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

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

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

您还可以通过侦听 app_uninstalled 事件在卸载应用程序时收到通知。

或者您也可以通过检查您在添加到 Slack 过程中收到的令牌来测试您的应用程序和 Webhook 是否仍然有效。只需使用该标记调用 API 方法 auth.test。如果它 returns 以下错误比 webhook 不再有效:

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