使用应用程序通过API邀请用户访问私有Slack组

时间:2018-03-13 21:06:09

标签: python slack-api

这是一个较大程序的较小部分,但是为了解决这一特定问题,我最近在使用slackclient模块在python中设置程序时遇到了一些麻烦,该模块可以邀请用户访问私有渠道(在API中称为组)。该程序有2个令牌,一个用于机器人,一个用于实际应用程序。

我的问题是,虽然我可以邀请机器人进入私人渠道,但它应该邀请人们,机器人不能拥有这样做的范围。如果我切换到具有这些范围的应用令牌,则无法完成操作,因为无法将应用邀请到频道。

可以找到此API调用的文档here

这是我正在使用的邀请命令:

SlackClient(slack_token).api_call("groups.invite", channel='GXXXXXXXX', user='UXXXXXXXX')

虽然机器人可以访问频道信息,但尝试邀请某人使用机器人会返回此错误:

'error': 'missing_scope', 'provided': 'identify,bot:basic', 'ok': False, 'needed': 'groups:write'

切换到app令牌会返回以下错误:

'error': 'channel_not_found', 'ok': False

我在这里遗漏了什么吗?或者是否有意不允许应用程序邀请用户访问私人频道?

1 个答案:

答案 0 :(得分:1)

这不起作用的原因如下:

  • 使用机器人令牌,您会收到第一个错误。 groups.invite一般不使用bot令牌。所以你需要为这个API方法使用用户令牌。
  • 使用用户令牌时,您会收到第二个错误,因为安装了Slack应用程序的用户显然不是该私有组的成员。所以他不能邀请其他用户使用它