首页 > 解决方案 > Slack 事件 API:从不接收“im_created”事件

问题描述

我正在构建一个 Slack 应用程序/机器人,我希望它能够在每次与它进行直接消息对话时欢迎用户。

为此,我根据文档相应地设置了我的 Slack 应用程序,以便能够接收“im_created”事件。特别是,我添加了 im:read 机器人范围(甚至是 im:read 工作区范围,只是为了确保)并订阅此事件。但是我从来没有收到过它,而我可以收到我需要的所有其他类型的事件。

有人已经遇到过这种情况并与我分享我在这里缺少的东西吗?

标签: slack-api

解决方案


不应依赖 'im_created' 事件,至少在小工作空间上是这样。事实上,这就是 Slack 支持人员对我的要求的回答:

“我最初是在一个有很多用户的工作空间上进行测试。然后我决定在一个较小的工作空间上进行测试,在那里,我能够复制你所看到的内容。结果当用户加入工作空间时,在较小的工作空间上进行测试,我们会自动打开该用户和大约 10 个其他用户之间的 DM。因此,您的机器人的 DM 频道可能已经存在,因为它们是在用户添加到工作区后立即创建的,因此没有 im_created 事件。我测试了更多通过邀请新用户到我的小工作区,同时收听在工作区级别(不是机器人级别)订阅的 im_created 事件。一旦新用户访问工作区,你知道什么?触发 im_created 事件。但是,这不会如果您在机器人级别订阅,则无法正常工作。”

对于这个用例(在开始与机器人对话时欢迎用户),应该使用“app_home_oppened”事件并测试它是否是与您自己的后端/数据对话的开始,再次引用 Slack 支持:

“无论如何,这对于您的用户案例来说都不是正确的事件,app_home_opened 是正确的选择。”


推荐阅读