【问题标题】:Slack Oauth - how do I force my slack app to receive messages in a certain channel?Slack Oauth - 如何强制我的 Slack 应用程序在某个频道中接收消息?
【发布时间】:2021-08-24 02:47:31
【问题描述】:

我正在构建一个 Slack 应用程序,当我在我的工作区中安装该应用程序时,在 Oauth 流程中,它会询问我希望将消息发送到哪个通道。然后,我必须在选择菜单(其中一个是我的 Slack 应用程序)中的所有频道中选择接收消息的位置。

当我安装类似 Jira Cloud Slack 应用程序时,它不会询问我想使用哪个频道来接收消息,它只是安装应用程序并在 Jira Cloud 频道中接收消息。我想尝试设置我的 slack 应用,这样用户就不必选择频道,而是将消息自动转到应用频道(如 Jira)。

有谁知道我需要什么设置(可能是 Oauth 范围?)?

【问题讨论】:

    标签: oauth-2.0 slack slack-api


    【解决方案1】:

    您使用的是 Slack 的 incoming webhooks 吗? Webhook 将要求您指定一个通道,但使用 Sign in with Slack 进行身份验证(或仅使用其 OAuth v2 进行身份验证)则不需要。还要确保您使用的是 Slack 最新版本的应用程序,其中包含细粒度范围 - 不确定旧版应用程序是否像这样工作。

    【讨论】:

    • 我正在使用 webhook,消息会在用户首次安装应用时选择的频道中发送给用户。我还使用 Slack 登录以及 OAuth2 流程来验证用户身份。我有一个斜杠命令,它返回一个登录链接,用户可以单击该链接来启动 OAuth 流程(所以我知道通道 ID)。我只是不知道如何在用户首次安装和“允许”应用程序向他们发送消息时默认使用该频道接收消息。我有一种感觉,它被绑定在范围内,但无法弄清楚我需要为范围设置什么才能实现这一点。
    • 我认为您根本不需要在这里使用 webhook。您可以通过chat.postMessage method 向用户发送消息,只需为您的机器人提供chat.write 范围并传递身份验证令牌和用户ID 作为目标通道。禁用传入 webhook 后,您的身份验证链接将不会有通道下拉菜单,您将手动处理该逻辑以构建对 postMessage API 端点的请求。
    • 解决方案:我在我的 OAuth 流程中要求“incoming-webhooks”机器人范围,这需要用户指定一个通道来接收它们。原来我不需要那个范围,所以我从我的 Oauth 范围中删除了它,现在当用户安装应用程序时,不会要求用户选择频道。
    猜你喜欢
    • 2016-05-04
    • 2017-04-28
    • 2022-01-12
    • 2016-08-21
    • 2020-09-28
    • 1970-01-01
    • 2017-04-27
    • 2017-10-16
    • 1970-01-01
    相关资源
    最近更新 更多