我'm writing an internal app that uses the Slack python client. I'm通过机器人用户进行身份验证并尝试调用 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()
方法,只是通过迭代,但这对我们拥有的数百个用户来说效率非常低 .
2 Answers
是的,你需要
users:read.email
范围 .只需重新验证您的Slack应用程序并包含该范围即可 .
但是,如果您使用机器人自定义集成,则无法添加更多范围 . 然后我建议创建一个Slack应用程序,您可以通过单击"Create a Slack app"在this page上执行此操作 .
请记住,Slack应用程序需要安装到您的工作区才能工作 . 您可以从应用程序的配置页面执行此操作 .
您可以在Slack应用程序管理页面中添加范围(权限) . 在基本信息下,
转到添加功能并选择权限子部分 .
在OAuth&Permissions页面上,向下滚动到Scopes - > Permission Scopes
在"Add permission by scope or API method..."下拉列表中,滚动至"View email addresses of people on this workspace"并选择用户:read.email