通过api阅读传入的松弛Webhooks的信息

时间:2019-04-29 15:58:38

标签: slack slack-api

按照通过add to slack button创建传入的Webhooks的步骤进行操作。最终响应将如下所示:

{
"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调用来查询“传入的Webhooks”信息?

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

1 个答案:

答案 0 :(得分:1)

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

如果发生这种情况,网络挂钩将不再起作用,并且您将在响应中收到错误消息。

当您卸载应用后,您还可以通过听app_uninstalled事件来得到通知。

或者,您也可以通过检查在添加到Slack过程中收到的令牌来测试您的应用和网络挂钩是否仍然有效。只需使用该令牌调用API方法auth.test。如果返回以下错误,则说明Webhook不再有效:

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