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 应用程序管理页面中添加范围(权限)。在基本信息下,
- 转到“添加特性和功能”并选择“权限”部分。
- 在 OAuth 和权限页面上,向下滚动到范围 -> 权限范围
- 在 "Add permission by scope or API method..." 下拉列表中,滚动到 "View email addresses of people on this workspace" 和 select users:read.email
我正在编写一个使用 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 应用程序管理页面中添加范围(权限)。在基本信息下,
- 转到“添加特性和功能”并选择“权限”部分。
- 在 OAuth 和权限页面上,向下滚动到范围 -> 权限范围
- 在 "Add permission by scope or API method..." 下拉列表中,滚动到 "View email addresses of people on this workspace" 和 select users:read.email