Slack 范围和机器人用户

Slack scopes and bot users

我正在编写一个使用 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),bot 用户应该可以访问此方法。所以我猜我的机器人没有 users:read.email 范围。有什么要补充的吗?作为一种变通方法,我正在调用 users.list() 方法并只是遍历该方法,但对于我们拥有的数百个用户来说,这是非常低效的。

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

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

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

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

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

  1. 转到“添加特性和功能”并选择“权限”部分。
  2. 在 OAuth 和权限页面上,向下滚动到范围 -> 权限范围
  3. 在 "Add permission by scope or API method..." 下拉列表中,滚动到 "View email addresses of people on this workspace" 和 select users:read.email