Slack 机器人可以与另一个机器人交互并在频道中触发它的某些功能吗?

Can a Slack bot interact with another bot and trigger some functions of it in a channel?

我构建了一个 Slack 机器人并试图让我的机器人与频道中的另一个机器人交互,但它似乎不起作用。

例如,我想使用 Polly(一个 Slack 机器人)的投票功能。

像我这样的普通用户发送 /polly "Which is better?" "Tacos" "Pizza" 消息,Polly 将在频道中创建一个 Slack 投票。但是当我让我的机器人在同一个频道发送相同的消息时(我使用 python-slackclient 和 chat.postMessage 方法),消息就像一个简单的文本,换句话说,它没有触发波莉.

那么,在一个频道中,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" 范围已弃用 。如何使我的令牌具有 "post" 范围?

我曾尝试让两个机器人进行交互,但没有成功。 Slack 以某种方式识别消息的来源,如果消息是由机器人或应用程序发送的,它就无法响应。我什至尝试 post 作为用户通过 slack API 发送消息,但没有成功。 但是,机器人可以使用 chat.command 方法来调用斜杠命令。 可以在此处找到非官方文档:

https://github.com/ErikKalkoken/slackApiDoc/blob/master/chat.command.md

你是正确的,未记录的 chat.command 需要 post 范围才能工作,这在标准 OAuth 流程中不可用(例如,你不能选择它作为 Slack 应用程序配置中的范围网站。)

据我所知,目前唯一可行的解​​决方案是使用 legacy 令牌。

另见 回答。