我的请求 URL 没有收到 Slack 事件 API 的任何事件。我错过了什么?

My request URL is not receiving any events for the Slack Events API. What am I missing?

我想订阅 Slack 事件 API 以获取在 Slack 频道中发布的任何消息。这些是我在 Slack Event API documentations.

中给出的以下步骤
  1. 我创建了一个具有以下权限范围的松弛应用程序:
    • 频道:历史,groups:history,im:history,mpim:history
  2. 在活动订阅中,我启用了活动,成功验证了请求 URL(“https://api.example.com/slack/event/push”),并订阅了以下团队活动:
    • channel_history_changed、group_history_changed、message.channels、message.groups、message.im、message.mpim
  3. 我让用户通过oauth授权来安装应用程序。 url 如下所示,带有范围和重定向 uri。 (PHP代码)

    $url = "https://slack.com/oauth/authorize/?client_id=" 。 SLACK_CLIENT_ID。 "&scope=users.profile:read,users:read,groups:history,channels:history,im:history,mpim:history" . “&redirect_uri=”。 url编码('https://api.example.com/slack/oauth/callback') 。 "&state=XXXXXXXXX";

  4. 我从 slack 收到了一个代码,我用它交换了访问令牌。

    访问令牌:xoxp-XXXXXXXXX-XXXXXXXXX-XXXXXXX-XXXXXXXXXXXXXXXXXXXX 范围:识别,频道:历史,groups:history,im:history,mpim:history,用户:阅读,users.profile:阅读 团队编号:XXXXXXXX

我检查了团队的应用程序和集成,看看是否安装了该应用程序,是的,它在应用程序列表中。

现在根据我的理解,当在团队的任何频道中发布任何消息时,应该向我已验证的 URL(“https://api.example.com/slack/event/push”)发出 POST 请求。但是我在那里没有收到任何 POST 请求。

我以为 URL 可能坏了,但我用计数器测试了它,每次 URL 被击中时它都会增加计数器。所以 URL 没问题。

我有什么地方漏掉了一步吗?我不知道接下来要尝试什么。

我联系了 Slack 支持,他们非常有帮助。 slack 的日志显示 Slack 实际上正在向我的请求 url 发送 POST 请求。所以我的设置工作正常。但是我的 API 框架无法解析请求正文,因此将内部服务器错误 (500) 发送到 Slack。我们使用 requestb.in 解决了这个问题。

我所要做的就是更改解析请求正文的方式。

让频道成为 public 非常重要!