侦听所有消息并可以编辑消息的Slack应用程序所需的最低权限是多少?

时间:2019-03-01 17:03:51

标签: javascript bots slack slack-api

该应用程序非常简单,它可以侦听所有消息,并且如果消息中包含keyword,它会为该消息添加附件。我希望它可以在所有领域(组,通道,dm,线程等)工作。

我正在使用Slacks事件回调系统将所有消息设置为端点。

我正在听这些事件

message.channels
message.groups
message.im
message.mpim

我配置的权限范围是

chat:write:user
channels:history
groups:history
im:history
mpim:history
commands

但是Slack拒绝了该应用

  

感谢您重新提交!但是,看一看后看来,要使您的应用正常运行,它需要访问授权用户的整个消息历史记录(*:history范围)。除此之外,要使应用程序最佳运行,还需要工作空间中的所有用户进行授权,从而可能使您的应用程序可以访问工作空间的整个消息历史记录。在查看了您的应用程序的功能之后,我们得出的结论是,您的应用程序未提供证明此访问级别合理的必要功能。

Slack确实建议我使用机器人用户,但如果可能的话,我希望避免这种情况。

在没有上述权限/范围的情况下,我是否能够读取和编辑邮件?

1 个答案:

答案 0 :(得分:0)

我猜您想使用chat.update向现有邮件添加附件。问题在于该方法仅适用于您自己发布的消息。因此,如果您与应用程序的bot用户一起发布消息,则可以稍后使用该方法更改消息-与发布后可以在Slack上更改自己的消息类似。

摘自官方文档:

  

只有经过身份验证的用户发布的邮件才能更新   使用这种方法。这包括常规的聊天消息,以及   包含me_message子类型的消息。 Bot用户也可能会更新   他们发布的消息。

为了更改来自其他用户的消息,工作区中的每个用户都需要授予您的应用程序代表其执行操作的权限。实际上,这意味着工作区的每个用户都需要安装一次您的应用程序-从而为该应用程序分配一个用户令牌,然后可以与chat.update一起使用。

此外,还需要管理员为该工作空间激活编辑功能。

这是唯一的方法。没有全局权限可以授予您应用程序的完全访问权限。由于Slack严格的安全体系结构,因此没有全局管理员权限,因此即使工作区的所有者也不能编辑来自其他人的消息。

顺便说一句。您还看不到其他用户的私人频道和直接消息频道,因此,除非所有用户都对其进行了身份验证,否则您的应用程序将不会从这些频道接收消息。

从安全角度看,我可以理解Slack团队为什么会对您的应用程序产生问题。另外,由于安全方面的考虑,我怀疑许多工作区管理员会允许您安装应用程序。