Logo
Section 1 / 4

创建频道(orientation)

学习如何使用 Slack API 调用创建频道并邀请用户加入。

导入

创建频道(orientation)

学习如何使用 Slack API 调用创建频道并邀请用户加入。

我们可以使用 Slack API 来启动对话:对话是消息交流的场所。频道、私信和群组消息都属于对话类型。我们还可以创建这些对话,并将用户添加到其中。Slack API 是自动化各种任务的有力工具。例如,每当项目管理系统中创建新团队或新小组时,我们就可以自动创建一个新频道。一旦应用程序打开一个频道,它就可以使用多个端点执行不同操作。这些操作包括更改频道名称和归档频道。

在本课中,我们来看以下端点:

  1. conversations.create:此端点用于启动基于公共或私有频道的对话。
  2. conversations.invite:此端点用于将一个或多个用户邀请到频道中。

...

创建新频道

要创建一个新频道,我们需要访问 https://slack.com/api/conversations.create 端点。除了 token 外,还需要提供一个 name 参数作为频道名称。

注意:请确保频道名称全部为小写字母且不包含空格。可以用连字符(-)代替空格。

请求参数

conversations.create 端点的一些重要查询参数如下:

参数类型必需性描述
tokentoken必需认证令牌携带了控制不同 Slack 应用程序和 API 使用权限的所需作用域。通常通过 HTTP Authorization 头部或 POST 参数传递。
namestring必需要创建的频道名称。
is_privatebool可选设置为 true 时表示创建私有频道。

让我们调用 conversations.create 端点。点击“运行”按钮,在工作区中创建一个名为 temp_channel 的新频道。

1import fetch from "node-fetch"; 2 3const url = "https://slack.com/api/conversations.create"; 4 5const headerParameters = { 6 Authorization: "Bearer {{TOKEN}}", 7 "Content-Type": "application/json; charset=UTF-8", 8}; 9 10const bodyParameters = JSON.stringify({ 11 name: "temp_channel", 12}); 13 14const options = { 15 method: "POST", 16 headers: headerParameters, 17 body: bodyParameters, 18}; 19 20async function createChannel() { 21 try { 22 const response = await fetch(url, options); 23 printResponse(response); 24 } catch (error) { 25 printError(error); 26 } 27} 28 29createChannel();

让我们分析代码组件中的高亮部分:

  • 第 10–12 行:我们将频道名称指定为 temp_channel。我们将使用从该响应中提取的频道 ID,在下一个代码组件中邀请自己加入新建的频道。

响应字段

成功响应包含一个 channel 属性,其中包含新创建频道的详细信息。

将用户邀请至频道

要将用户邀请至频道,我们需要访问 https://slack.com/api/conversations.invite 端点。我们需要指定 users(一个或多个用户)以及频道 ID。

请求参数

conversations.invite 端点的一些重要查询参数如下:

参数类型必需性描述
tokentoken必需认证令牌携带了控制不同 Slack 应用程序和 API 使用权限的所需作用域。通常通过 HTTP Authorization 头部或 POST 参数传递。
channelstring必需指定消息将发布的频道。可以是公开频道、私有群组或 IM 频道(直接消息)。该参数的值可以是编码后的 ID 或频道名称。
usersstring必需用户 ID 列表。

运行下面的代码组件,将自己添加到新创建的频道中。

...
在运行下方代码组件后,Slack 应用中的预期输出

让我们调用 conversations.invite 端点。点击“运行”按钮,将自己添加到上一个代码组件中创建的频道。

1import fetch from "node-fetch"; 2 3const url = "https://slack.com/api/conversations.invite"; 4 5const headerParameters = { 6 Authorization: "Bearer {{TOKEN}}", 7 "Content-Type": "application/json; charset=UTF-8", 8}; 9 10const bodyParameters = JSON.stringify({ 11 channel: "{{CHANNEL_ID_APP}}", 12 users: "{{USER_ID}}", 13}); 14 15const options = { 16 method: "POST", 17 headers: headerParameters, 18 body: bodyParameters, 19}; 20 21async function inviteUser() { 22 try { 23 const response = await fetch(url, options); 24 printResponse(response); 25 } catch (error) { 26 printError(error); 27 } 28} 29 30inviteUser();

让我们分析代码组件中的高亮部分:

  • 第 10–13 行:我们将 channel 设置为前一个代码组件中提取的频道 ID,并将 users 参数设置为我们的用户 ID。

响应字段

此端点的响应与 conversations.create 端点的响应相同。它包含一个 channel 属性,其中包含用户被邀请进入的频道的详细信息。

使用应用程序进行聊天

设置频道属性(concept)