我正在构建一个Slack集成,旨在修改一些文本,然后将其发布到Slack通道,就像触发命令的用户说过它一样.
例如/ makeFace不赞成
@Ben下午3:45
ಠ_ಠ
我要求客户端权限范围,它添加了chat:write:user权限.但是当我点击chat.postMessage端点时,它似乎只允许你作为添加集成的用户发布,因为它返回的令牌似乎是针对该用户的个性化.
我知道giphy,例如,发送它的gif消息,好像你是创始人,但我不知道他们是如何管理它的.是否有任何关于发送消息的文档作为团队的其他成员?
解决方法:
有两种方法可以实现这一目标:
A.覆盖用户名和图标
当您使用chat.postMessage
发送消息时,可以使用属性username设置用户名.然后该消息将显示为该用户发送(对于带有icon_url的图标,该消息也是如此).
但是,这并不意味着模仿真实用户,因此即使您使用与真实用户相同的用户名和图标,该消息也将具有app标记,以便可以将它们与真实用户区分开来.
这是一个如何看起来的例子(来自游戏玩家Slack关于飞行和杀死太空船):
但取决于您的要求可能对您有用.
如果要使用它,请确保将as_user属性设置为false(是的,确实),并且它不能与bot令牌一起使用,只能使用用户令牌.
有关其工作原理的更多详细信息,请参见here.
这也适用于Incoming Webhooks的旧版本,但不适用于当前版本的incoming webhooks. (您仍然可以获得旧版本,请参阅this answer)
B.拥有所有代币
另一种方法是始终使用来自相应用户的令牌来发送消息.结合as_user = true,您的应用发送的消息看起来就像是来自相应的用户(没有APP标签).
要实现这一点,您的应用需要从工作区中的所有用户收集令牌并存储它们以供日后使用.这可以通过要求每个用户安装您的应用程序(称为添加“配置”)通过Oauth process(用于将应用程序安装到工作区)来完成,这允许您的应用程序收集并存储这些令牌供以后使用.