44

我正在寻找一个可以从我的应用程序向新用户发送 Slack 团队邀请电子邮件的电话。我在 SlackAPI 中搜索了它,但没有找到任何东西。是否可以创建一个代表我发送邀请的应用程序?
我目前正在使用 slacker 作为 Python 包装器,但如果有更好的库可以提供邀请,我可以开始使用它。

4

3 回答 3

105

通过 API 邀请新用户

Slack API 中有一个未记录的方法,允许您以编程方式邀请新用户到您的 Slack 工作区:

  • 方法名称:users.admin.invite
  • 论据:token, email,channels
  • 令牌:您的 slack API“测试”令牌(必需)
  • email:电子邮件地址,例如email=test@email.com(必填)
  • 频道:新用户将自动加入的频道列表,以逗号分隔。频道由 ID 指定。例如channels=C000000001,C000000002(可选)

完整示例:

https://slack.com/api/users.admin.invite?token=XXX&email=test@email.com&channels=C000000001,C000000002

请注意,此 API 方法仅适用于遗留类型令牌。

我开始记录我所知道的“未记录的”Slack API 方法,包括users.admin.invite. 查看github上的文档。

通过 API 创建新用户

或者, SCIM API中有一个端点可以直接创建新用户:

POST /Users

但是,SCIM API 及其所有端点仅适用于Plus计划或Enterprise Grid上的 Slack 工作区。

重要更新

Slack 已决定从其 API 中删除遗留令牌。自 2020 年 5 月 5 日起,将无法再创建新的旧代币(来源)。如果您有一个有效的旧令牌,您应该能够继续使用未记录的 API 方法,但新用户不能。在决定在您的应用程序中使用此存储库中的任何方法时,请考虑到这一点。

于 2016-03-20T14:02:51.243 回答
3

遗憾的是,用于邀请新用户 ( users.admin.invite) 的未记录端点不再可用于新工作区,因为它需要旧令牌。

但是有一个替代解决方案。

未记录的端点主要做的是向指定的电子邮件地址发送一封电子邮件,其中包含您工作区的邀请链接。以下是重现该功能的方法:

  • 为您的工作区手动创建邀请链接
  • 向新用户发送包含邀请链接的电子邮件

请注意,邀请链接在 2.000 次邀请后过期,因此您需要一种方法来计算使用情况并在需要替换它们时收到通知。

于 2020-08-29T12:58:06.877 回答
0

正如其他人所提到的,对于非企业计划,没有记录的方法可以做到这一点。

如果您想自动化邀请,您有两种选择:

  1. 您可以生成一个不会过期的邀请 URL 并将其发送给用户。这与 Slack 发送的邀请没有什么不同。
  2. 使用标识您的身份验证会话的 API 令牌。

仅当您是工作区的管理员时,后一种方法才有效。

  1. 打开 Slack Web 应用并拦截 HTTP 请求
  2. 使用 Slack Web 应用向测试用户发送邀请
  3. 查找提及的 HTTP 请求slack.com/api/users.admin.inviteBulk
  4. token从 HTTP 请求正文中复制参数值。

现在您可以使用它token来使用您的应用程序构建users.admin.inviteBulkAPI 请求。

这种方法的缺点是这些令牌最终会过期。

两种方法都需要人工干预:

  1. 您需要每 2000 个邀请刷新一次 URL
  2. 您需要每 30 天刷新一次令牌
于 2021-08-26T15:06:25.563 回答