Slack 机器人可以与另一个机器人交互并在频道中触发它的某些功能吗?
Posted
技术标签:
【中文标题】Slack 机器人可以与另一个机器人交互并在频道中触发它的某些功能吗?【英文标题】:Can a Slack bot interact with another bot and trigger some functions of it in a channel? 【发布时间】:2018-01-16 20:51:07 【问题描述】:我构建了一个 Slack 机器人并试图让我的机器人与 a 频道中的另一个机器人交互,但它似乎不起作用。
例如,我想使用Polly(一个Slack bot)的投票功能。
像我这样的普通用户发送 /polly “哪个更好?” “Tacos”“Pizza” 消息和 Polly 将在频道中创建 Slack 投票。但是当我让我的机器人在同一个频道中发送相同的消息时(我使用python-slackclient和chat.postMessage方法),消息就像一个简单的文本,换句话说,它没有触发Polly。
那么,在频道中,Slack 机器人如何与另一个机器人交互并触发它的某些功能? 有人做过这样的事吗?
更新
https://github.com/ErikKalkoken/slackApiDoc/blob/master/chat.command.md
我尝试了这个方法,但遇到了另一个问题......
错误信息是
'error': 'missing_scope',
'needed': 'post',
'ok': False,
'provided': 'identify,bot:basic'
Oauth 令牌需要“post”范围,但官方文件显示“post”范围已被弃用。如何使我的令牌具有“发布”范围?
【问题讨论】:
【参考方案1】:我试图让两个机器人交互,但没有发现它起作用。 Slack 以某种方式识别消息的来源,如果消息是由机器人或应用程序发送的,则它无法响应。我什至尝试通过 slack API 以用户身份发布消息,但没有让它工作。
但是,机器人可以使用chat.command
方法来调用斜杠命令。
非官方文档可以在这里找到:
https://github.com/ErikKalkoken/slackApiDoc/blob/master/chat.command.md
【讨论】:
非常感谢!! OK:) 但是我在使用 slack bot 令牌作为令牌参数时遇到了错误。错误消息是 'error': 'missing_scope', 'needed': 'post', 'ok': False, 'provided': 'identify,bot:basic' 令牌需要范围“post”,我该如何将其添加到我的 Oauth 范围...? 您需要为机器人用户添加访问范围。转到 slack API 页面并为您的机器人添加所需的权限。 api.slack.com 进入我的应用程序【参考方案2】:您是正确的,未记录的 chat.command
需要 post
范围才能工作,这在标准 OAuth 过程中不可用(例如,您不能在 Slack 应用配置站点上选择它作为范围。)
据我所知,目前唯一可行的解决方案是使用legacy 令牌。
另请参阅this 答案。
【讨论】:
感谢您的回答!顺便说一句,我也问过你 GitHub 上的相同问题:) 是的,我看到了,并在我的 github 上回答了你的问题 :-) 正如我所说,我还向 Slack 团队发送了一个请求,请求将此方法集成到标准 Oauth 过程中。让我们看看他们怎么说... @ErikKalkoken,你有没有收到 Slack 团队关于这方面的任何更新? 支持人员这样说:“我会确保将建议传递给我们的产品团队,并让他们知道不断增长的需求”没有收到任何其他回复。以上是关于Slack 机器人可以与另一个机器人交互并在频道中触发它的某些功能吗?的主要内容,如果未能解决你的问题,请参考以下文章