我正在寻找一个可以从我的应用程序向新用户发送 Slack 团队邀请电子邮件的电话。我在 SlackAPI 中搜索了它,但没有找到任何东西。是否可以创建一个代表我发送邀请的应用程序?
我目前正在使用 slacker 作为 Python 包装器,但如果有更好的库可以提供邀请,我可以开始使用它。
3 回答
通过 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中有一个端点可以直接创建新用户:
但是,SCIM API 及其所有端点仅适用于Plus计划或Enterprise Grid上的 Slack 工作区。
重要更新
Slack 已决定从其 API 中删除遗留令牌。自 2020 年 5 月 5 日起,将无法再创建新的旧代币(来源)。如果您有一个有效的旧令牌,您应该能够继续使用未记录的 API 方法,但新用户不能。在决定在您的应用程序中使用此存储库中的任何方法时,请考虑到这一点。
遗憾的是,用于邀请新用户 ( users.admin.invite
) 的未记录端点不再可用于新工作区,因为它需要旧令牌。
但是有一个替代解决方案。
未记录的端点主要做的是向指定的电子邮件地址发送一封电子邮件,其中包含您工作区的邀请链接。以下是重现该功能的方法:
- 为您的工作区手动创建邀请链接
- 向新用户发送包含邀请链接的电子邮件
请注意,邀请链接在 2.000 次邀请后过期,因此您需要一种方法来计算使用情况并在需要替换它们时收到通知。
正如其他人所提到的,对于非企业计划,没有记录的方法可以做到这一点。
如果您想自动化邀请,您有两种选择:
- 您可以生成一个不会过期的邀请 URL 并将其发送给用户。这与 Slack 发送的邀请没有什么不同。
- 使用标识您的身份验证会话的 API 令牌。
仅当您是工作区的管理员时,后一种方法才有效。
- 打开 Slack Web 应用并拦截 HTTP 请求
- 使用 Slack Web 应用向测试用户发送邀请
- 查找提及的 HTTP 请求
slack.com/api/users.admin.inviteBulk
token
从 HTTP 请求正文中复制参数值。
现在您可以使用它token
来使用您的应用程序构建users.admin.inviteBulk
API 请求。
这种方法的缺点是这些令牌最终会过期。
两种方法都需要人工干预:
- 您需要每 2000 个邀请刷新一次 URL
- 您需要每 30 天刷新一次令牌