【发布时间】:2018-05-29 09:35:45
【问题描述】:
我对 slack web api 和机器人特别陌生。我的问题是,机器人用户无法将消息发布到频道中的原因是什么,直到他们被隐式邀请,尽管我们可以代表机器人向其上传文件。下面是几个代码sn-ps
我已请求以下范围 chat:write:user bot files:write:user
当我上传带有通过 OAuth2 获得的机器人令牌的文件时,该文件出现在带有机器人图标和名称的频道中
.token(BOT_TOKEN)
.title("title")
.content("content")
.channels(Collections.singletonList("#channel"))
.build();
但是当我使用相同的方法尝试将消息发布到同一频道时,我收到一个错误 not_in_channel
.token(BOT_TOKEN)
.channel("#channel")
.text("text")
.asUser(true)
我知道它在没有作为用户 true 传递的情况下工作,但是它设置了默认的应用程序图标和名称,而不是机器人。
在与机器人进行身份验证后,有没有一种方法可以在无需用户交互的情况下将消息/上传文件发布到频道。
【问题讨论】:
-
因此,虽然不在该频道中,但您可以上传文件,并且可以将消息作为机器人(as_user = false)发送到该频道。您能否详细说明什么不起作用以及您想要实现什么?
-
@ErikKalkoken 感谢您的回复,当我尝试使用机器人令牌发布消息并传递 as_user = false 这是默认值时,消息是代表我的 APP 而不是机器人用户发布的,我的应用程序有不同的图标和名称,然后当我上传一个实际上代表我的 BOT 用户的文件时,它的图标和名称看起来很奇怪。从不同的图标和名称发送的 2 条消息。但是,当我将 as_user 标志更改为 true 时,我收到一个错误,即机器人不在频道内,尽管我能够将文件上传到它。如果仍然不清楚,我可以发布屏幕。