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 机器人可以与另一个机器人交互并在频道中触发它的某些功能吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何激活 Slack 机器人

为机器人用户创建 Slack 频道

公共频道更改为私人频道时无法获取 Slack 频道信息

基于Perfect用Swift语言编写Slack聊天机器人

Can slack 频道链接不可见

Slack Bot 从历史中返回消息