【问题标题】:Slack scopes and bot usersSlack 范围和机器人用户
【发布时间】:2018-01-13 00:21:35
【问题描述】:

我正在编写一个使用 Slack python 客户端的内部应用程序。我正在通过机器人用户进行身份验证并尝试调用 users.lookupByEmail() 方法来获取特定用户的 Slack 信息:

sc = SlackClient(SLACK_TOKEN)
user = sc.api_call(method='users.lookupByEmail', email=email)

但是我得到以下信息:

'{"ok":false,"error":"missing_scope","needed":"users:read.email","provided":"identify,read,post,client,apps"}'

根据 API 文档 (https://api.slack.com/methods/users.lookupByEmail),机器人用户应该可以访问此方法。所以我猜我的机器人没有users:read.email 范围。有什么要补充的吗?作为一种解决方法,我调用了 users.list() 方法并只是对其进行迭代,但是对于我们拥有的数百名用户来说,这非常低效。

【问题讨论】:

    标签: slack-api


    【解决方案1】:

    是的,您需要users:read.email 范围。

    只需重新验证您的 Slack 应用并包含该范围,它应该可以工作。

    但是,如果您使用机器人自定义集成,则无法添加更多范围。然后我建议改为创建一个 Slack 应用程序,您可以在 this page 上单击“创建 Slack 应用程序”。

    请记住,需要将 Slack 应用安装到您的工作区才能正常工作。您可以从应用的配置页面执行此操作。

    【讨论】:

    • 我不确定您所说的“重新验证您的 Slack 应用程序”是什么意思。也许我不应该使用“app”这个词。我只是为我的脚本提供了我正在使用的机器人的 API 令牌(在 Browse Apps --> Custom Integrations --> Bots --> MyBot 下)。我没有看到可以更改/包含范围的任何地方。
    • 我明白你的意思。我会相应地扩展我的答案。
    【解决方案2】:

    您可以在 Slack 应用程序管理页面中添加范围(权限)。在基本信息下,

    1. 转到添加特性和功能并选择权限子部分。
    2. 在 OAuth & Permissions 页面上,向下滚动到 Scopes -> Permission Scopes
    3. 在“按范围或 API 方法添加权限...”下拉菜单中,滚动到“查看此工作区人员的电子邮件地址”并选择用户:read.email

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2022-12-25
      • 2018-11-07
      • 1970-01-01
      • 2019-10-28
      • 2020-06-08
      • 2019-01-17
      相关资源
      最近更新 更多