Slack范围和僵尸用户

时间:2017-12-20 21:17:46

标签: slack-api

我正在编写一个使用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()方法并且只是通过迭代来解决这个问题,但对于我们拥有的数百个用户而言效率非常低。

2 个答案:

答案 0 :(得分:0)

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

只需重新验证您的Slack应用程序并包含该范围即可。

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

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

答案 1 :(得分:0)

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

  1. 转到添加功能&功能并选择权限子部分。
  2. 关于OAuth&权限页面,向下滚动到范围 - >许可范围
  3. 在"按范围或API方法添加权限..."下拉列表,滚动到"查看此工作区中人员的电子邮件地址"并选择用户:read.email