是否可以以Slack团队中的任何用户身份发布chat.postMessage?

Ben*_*min 4 javascript slack-api slack

我构建旨在改变一些文字,然后将其发布到松弛的通道,就好像谁触发了该命令的用户表示,松弛的整合。

例如 /makeFace disapproval

@Ben 3:45pm ?_?

我要求client权限范围,它添加了chat:write:user权限。但是,当我点击chat.postMessage端点时,它似乎只允许您以添加集成的用户身份发布因为它返回的令牌似乎是针对该用户的个性化对象。

例如,我知道giphy会像创建者一样发送其gif消息,但我找不到他们如何管理它。是否有任何文档可以像团队其他成员一样发送消息?

Eri*_*ken 6

有2种方式来实现这一目标:

A.覆写用户名和图标

使用发送消息时chat.postMessage,可以使用属性设置用户名username。然后,该邮件将显示为由该用户发送(与图标相同icon_url)。

然而,这并不意味着冒充真正的用户,因此,即使您使用相同的用户名和图标作为真正的用户信息将安装该应用程序标签,使他们能够从真正的用户进行区分。

这是一个示例(来自玩家Slack关于飞行和杀死太空飞船的样子): 在此处输入图片说明

但是根据您的要求,可能适合您。

如果要使用它,请确保还将该as_user属性设置为false(是,确实),并且它不能与机器人令牌一起使用,而只能与用户令牌一起使用。

有关其工作原理的更多详细信息,请参见此处

这也适用于传入Webhooks的旧版本,但不适用于当前版本的传入Webhooks。(您仍然可以获取旧版本,请参见此答案

B.具有用户的令牌

另一种方法是始终使用来自相应用户的令牌来发送消息。与as_user = true您的应用发送的消息结合使用时,看起来就像是来自各自用户的消息(无APP标签)。

要做到这一点你的应用程序将需要收集工作区所有用户令牌,并将其存储以备后用。可以通过要求每个用户通过Oauth流程安装您的应用程序(称为添加“配置”)来完成此操作(与您将应用程序安装到工作区时使用的相同),这允许您的应用程序收集和存储这些令牌以供以后使用。

  • 这是一种实现方式,但值得指出的是,Slack 曾表示他们希望限制这种在每次请求时更改图片的功能。(虽然他们在一年前确实说过) (2认同)