【问题标题】:How to let a user join channel in Slack App如何让用户在 Slack App 中加入频道
【发布时间】:2018-05-13 00:27:14
【问题描述】:

我正在开发一个 Slack 应用程序,该应用程序也有它的机器人。用户可以将文件从机器人共享到任何公共频道,即使他不在该频道中。如果用户不在频道中,那么首先我会将用户添加到频道中,然后共享文件。为此 slack 提供了 apihttps://api.slack.com/methods/channels.join 帮助用户加入频道。但它需要一个与想要加入频道的用户相对应的用户令牌。现在的问题是我只有与已安装该应用程序的用户相对应的机器人令牌(xoxb-)和 API 令牌(xoxp-)。那么如何获得与我想加入的任何用户相对应的令牌,或者我在这里遗漏了一些东西。请帮忙。

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    不,您不需要与加入用户对应的令牌。

    使用机器人用户安装 Slack 应用程序时,您会收到两个令牌:机器人令牌和应用程序令牌。如果您的应用具有所需的范围 (channels:write),则应用令牌(但不是机器人令牌)将用于邀请用户进入公共频道。

    【讨论】:

    • 但是 channels.join API 只需要令牌和频道名称来加入,那么它将如何确定我想加入哪个用户,它不需要任何用户名或用户 ID 来确定这一点。
    • 我认为让用户加入频道API是channels.invite而不是channels.join,因为channels.invite将用户ID作为参数让用户加入公共频道。 Erik 我的理解正确吗?
    • 是的,你是对的。使用channels.invite 和应用令牌来邀请用户加入频道。
    • 感谢@Erik,这很有效。但是我看到的一个问题是,当用户使用 channels.invite 加入频道时,它显示“@username”(已安装应用程序的用户)已邀请但我希望它应该显示“@botname”已邀请做什么为此?
    • 我明白你的意思。不幸的是,这就是 Slack 的工作方式,并且无法显示机器人名称。但是有一个解决方法:我使用通用管理员用户(我的称为“slackadmin”)作为安装程序,所以它显示“slackadmin 邀请”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 2015-06-01
    • 2018-10-08
    • 2016-12-20
    相关资源
    最近更新 更多