Slack Bot能否在OAuth安装应用时自动加入频道而无需手动邀请?
Slack应用OAuth安装阶段自动加入目标频道的实现方案
可以通过合理使用权限和OAuth流程配置实现,无需用户安装完成后单独在频道内执行@应用或/invite命令,分两种场景说明:
使用incoming-webhook发送消息的场景
- 你当前申请的
incoming-webhook权限本身已支持安装阶段自动关联频道:用户在OAuth授权页选择目标频道并完成授权后,Slack返回的授权响应中会携带incoming_webhook对象,包含该频道专属的webhook发送地址、对应频道ID、频道名称等字段,应用直接调用该webhook地址发消息即可,不会触发channel not found错误,授权环节系统已自动将应用添加到用户选择的频道中。 - 你当前遇到的报错大概率是没有使用授权返回的专属webhook地址,而是调用了通用的消息发送API且未提前将应用加入频道导致的。
调用Slack Open API发送消息的场景
- 如果你需要用
chat.postMessage等通用API发送消息,需额外申请对应权限:- 公开频道:申请
channels:join权限,安装完成后调用conversations.join接口传入目标频道ID,即可直接将应用加入对应公开频道,无需用户手动操作 - 私有频道:目前Slack不支持API主动加入私有频道,你可以在OAuth授权引导中提示用户在安装时的频道选择下拉框直接选中目标私有频道,选中后授权完成应用会自动加入该频道,无需后续手动邀请
- 公开频道:申请
注意:如果用户在OAuth授权阶段选择的是「无频道」或者没有完成频道选择步骤,无论用哪种发消息方式,都需要后续手动邀请应用加入频道才能正常调用。
内容的提问来源于stack exchange,提问作者Léo Le Henaff
相关产品推荐
相关产品推荐

