导入
创建通道
学习如何使用 Slack API 调用创建频道并邀请用户加入。
概述
我们可以使用 Slack API 来启动对话并邀请用户加入这些对话。Slack API 是自动化各种任务的有力工具。例如,每当项目管理系统中创建新的团队或小组时,我们就可以自动创建一个新频道。一旦应用程序打开了一个频道,它就可以使用多个端点执行不同的操作,包括更改频道名称和归档频道。
本课程将介绍以下端点:
conversations.create:此端点用于启动基于公共或私有频道的对话。conversations.invite:此端点用于邀请用户加入频道。
创建新频道
要创建一个新频道,我们需要访问 https://slack.com/api/conversations.create 端点。除了 token 外,还需要提供一个 name 参数来指定频道名称。
注意:请确保频道名称全部为小写字母且不包含空格。可以使用连字符(
-)代替空格。
conversations.create 端点的一些重要查询参数如下:
| 参数 | 类型 | 必需性 | 描述 |
|---|---|---|---|
| token | token | 必需 | 认证令牌携带了控制不同 Slack 应用程序和 API 使用权限的所需作用域。通常通过 HTTP Authorization 头部或 POST 参数传递。 |
| name | string | 必需 | 要创建的频道名称。 |
| is_private | bool | 可选 | 设置为 true 时表示创建私有频道。 |
让我们调用 conversations.create 端点。点击“运行”按钮,在工作区中创建一个名为 temp_channel 的新频道。
1import requests 2import json 3 4url = "https://slack.com/api/conversations.create" 5data = {'name':'temp_channel'} 6headers = { 7 'Authorization': 'Bearer {{Token}}', 8 'Content-Type': 'application/x-www-form-urlencoded', 9} 10 11response = requests.get(url, headers=headers, params=data) 12print(json.dumps(response.json(), indent=4))
- 第 5 行:我们向应用提供名称
temp_channel,使其成为一个频道。我们将使用从上一步提取的频道 ID,在下一个代码模块中邀请自己加入该应用创建的频道。
将用户邀请到频道
要将用户邀请到频道,我们需要访问 https://slack.com/api/conversations.invite 端点。需要指定 users(一个或多个用户)以及频道 ID。
conversations.invite 端点的一些重要查询参数如下:
| 参数 | 类型 | 必需性 | 描述 |
|---|---|---|---|
| token | token | 必需 | 认证令牌携带了控制不同 Slack 应用程序和 API 使用权限的所需作用域。通常通过 HTTP Authorization 头部或 POST 参数传递。 |
| channel | string | 必需 | 指定消息将发布的频道。可以是公开频道、私有群组或 IM 频道(直接消息)。该参数的值可以是编码后的 ID 或频道名称。 |
| users | string | 必需 | 用户 ID 列表。 |
运行下面的代码模块,将自己添加到新创建的频道中。
...
运行下方代码模块后在 Slack 应用中的预期输出
让我们调用 conversations.invite 端点。点击“运行”按钮,将自己添加到上一个代码模块中应用创建的频道。
1import requests 2import json 3 4url = "https://slack.com/api/conversations.invite" 5data = { 6 'channel':'{{CHANNEL_ID_APP}}', 7 'users':'{{user_id}}' 8} 9headers = { 10 'Authorization': 'Bearer {{Token}}', 11 'Content-Type': 'application/x-www-form-urlencoded', 12} 13 14response = requests.get(url, headers=headers, params=data) 15print(json.dumps(response.json(), indent=4))
- 第 4 行:我们指定
conversations.invite端点。 - 第 5–8 行:我们将
channel设置为上一个代码模块中提取的频道 ID,同时将users参数设为我们的用户 ID。