

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Slack 集成
<a name="slack-integration"></a>

使用 Slack 操作连接器，你可以通过自然语言直接在 Amazon Quick 中访问 Slack 平台。您无需离开 Amazon Quick 即可发送消息、管理频道、搜索内容以及与用户和用户组互动。

Amazon Quick 支持 Slack 的多种身份验证方法。选择最适合您组织安全要求的方法。
+ **默认 OAuth 应用程序**-使用 AWS由托管的 OAuth 应用程序。无需其他凭证。您可以直接使用您的 Slack 工作区进行身份验证。
+ **自定义 OAuth 应用程序**-使用客户管理的 Slack 应用程序。此选项可让您的组织完全控制 OAuth 配置。
+ **不记名令牌** — 使用 Slack 机器人令牌进行身份验证。此方法适用于对工作区的机器人级访问。

有关 Amazon Quick 支持的身份验证方法的更多信息，请参阅[身份验证方法](quick-action-auth.md)。

## 开始前的准备工作
<a name="slack-integration-prerequisites"></a>

在设置集成之前，请确保您具备以下条件。
+ 一个 Slack 工作区，可以访问您要使用的频道和数据。
+ 对于**自定义 OAuth 应用程序**：访问 Slack 网站上的 [Slack API 控制面板](https://api.slack.com/apps)以创建应用程序。
+ 对于**持有者令牌**：来自 Slack 应用程序的机器人令牌（开头为`xoxb-`）。有关更多信息，请参阅 Slack 网站上的[快速入门应用程序设置](https://docs.slack.dev/app-management/quickstart-app-settings)。
+ 有关 Amazon Quick 订阅要求，请参阅[在控制台中设置集成](integration-console-setup-process.md)。

## 配置 Slack
<a name="slack-source-setup"></a>

如果您使用**默认 OAuth 应用程序**身份验证，请跳过此部分并转至。[在 Amazon Quick 中设置连接器](#slack-quicksuite-setup)

对于自定义 OAuth 应用程序或持有者令牌身份验证，请在配置 Amazon Quick 之前在 Slack 中完成相应的步骤。

### 为自定义 OAuth 应用程序或持有者令牌创建 Slack 应用程序
<a name="slack-register-oauth"></a>

创建 Slack 应用程序以获取 Amazon Quick 所需的客户凭证或机器人令牌。

1. 前往 [Slack 网站上的 Slack API 控制面板](https://api.slack.com/apps)，然后选择**创建新应用程序**。

1. 选择 “**从头开始**”。

1. 输入**应用程序名称**并选择您的 Slack 工作空间。选择 **Create App（创建应用程序）**。

1. 在左侧边栏中，选择 **OAuth 和权限。**

1. 在 “**重定向网址**” 下，选择 “**添加新的重定向 URL**”，然后输入 Amazon 快速回传 URL：`https://{{{region}}}.quicksight.aws.amazon.com/sn/oauthcallback`

   选择 “**添加**”，然后选择 “**保存 URL**”。

1. 在 “**范围**” 下，添加您的集成所需的机器人令牌作用域。有关推荐的范围，请参阅[推荐瞄准镜](#slack-oauth-scopes)。

1. 在左侧边栏中，选择 “**基本信息**”。在 “**应用程序凭证**” 下，记录以下值：
   + **客户端 ID**
   + **客户端密钥**

1. 对于**持有者令牌**：从 **OAuth 和**权限页面将应用程序安装到您的工作区。安装后，复制 **Bot 用户 OAuth 令牌**（开头`xoxb-`为）。

### 推荐瞄准镜
<a name="slack-oauth-scopes"></a>

当你连接到 Slack 时，需要以下范围。创建自定义 Slack 应用程序时，请在 **OAuth 和**权限页面上添加这些范围。对于自定义 OAuth 应用程序，请将其添加为**用户令牌范围**。对于持有者代币，请将其添加为**机器人代币范围**。


**Slack 推荐瞄准镜**  

| Scope | 说明 | 
| --- | --- | 
| calls:read | 读取通话信息。 | 
| calls:write | 创建和管理呼叫。 | 
| channels:history | 阅读公共频道中的消息历史记录。 | 
| channels:read | 阅读有关公共频道的信息。 | 
| channels:write | 管理公共频道。 | 
| chat:write | 向频道和对话发送消息。 | 
| dnd:read | 读取 “请勿打扰” 设置。 | 
| dnd:write | 更新 “请勿打扰” 设置。 | 
| emoji:read | 读取自定义表情符号。 | 
| files:read | 读取频道中共享的文件。 | 
| files:write | 上传和管理文件。 | 
| groups:history | 在私人频道中读取消息历史记录。 | 
| groups:read | 读取有关私人频道的信息。 | 
| groups:write | 管理私人频道。 | 
| im:history | 读取私信中的消息历史记录。 | 
| im:read | 读取私信的相关信息。 | 
| im:write | 开始私信。 | 
| links:read | 读取链接预览。 | 
| links:write | 管理链接预览。 | 
| mpim:history | 读取群组私信中的留言历史记录。 | 
| mpim:read | 读取有关群组私信的信息。 | 
| mpim:write | 开始群组私信。 | 
| pins:read | 读取已置顶的消息。 | 
| pins:write | 固定和取消置顶消息。 | 
| reactions:read | 读取消息上的表情符号反应。 | 
| reactions:write | 添加和移除表情符号反应。 | 
| reminders:read | 阅读提醒。 | 
| reminders:write | 创建提醒。 | 
| remote\_files:read | 读取远程文件。 | 
| remote\_files:share | 共享远程文件。 | 
| search:read | 搜索消息和文件。 | 
| stars:read | 阅读已加星标的物品。 | 
| stars:write | 星星和取消星标的物品。 | 
| team:read | 读取工作空间信息。 | 
| usergroups:read | 读取用户组信息。 | 
| usergroups:write | 管理用户组。 | 
| users:read | 读取用户信息。 | 
| users:read.email | 读取用户的电子邮件地址。 | 
| users:write | 更新用户信息。 | 
| users.profile:read | 读取用户个人资料信息。 | 
| users.profile:write | 更新用户个人资料信息。 | 

**注意**  
并非所有作用域都适用于用户令牌作用域和机器人令牌作用域。某些作用域（例如`search:read`和`stars:read`）仅可用作用户令牌作用域。在为持有者令牌身份验证配置范围时，请在 Slack 网站上的 [Slack API 作用域参考](https://api.slack.com/scopes)中验证范围的可用性。

## 在 Amazon Quick 中设置连接器
<a name="slack-quicksuite-setup"></a>

### 从 “可用” 选项卡连接
<a name="slack-quick-connect"></a>

如果要使用默认 OAuth 应用程序身份验证，则无需额外配置即可直接从 “**可用**” 选项卡进行连接。

1. 在 Amazon Quick 控制台中，选择**连接器**。

1. 在 “**可用**” 选项卡上，找到 **Slack**，然后选择 **Connect**。

1. 完成 Slack 登录流程并授予所请求的权限。

要改为使用自定义 OAuth 应用程序或 Bearer Token 配置连接器，请使用**为你的团队创建**选项卡，如下所述。

### 从 “为你的团队创建” 选项卡创建
<a name="slack-full-setup"></a>

完成所有必需的 Slack 配置后，请在 Amazon Quick 中创建连接器。

1. 在 Amazon Quick 控制台中，选择**连接器**。

1. 选择 “**为你的团队创建**” 选项卡。

1. 找到并选择 **Slack**。
**注意**  
如果 Slack 连接器已经存在，则会出现一个包含现有连接器的对话框。要使用现有的连接器，请选择它。要创建新的，请选择 “**否，新建**”。

1. 输入连接器的**名称**。（可选）选择 **\+ 添加描述**以添加描述。

1. 在 “**连接类型**” 中，选择 “**公共网络**”。

1. 对于 **OAuth 配置**，请选择以下身份验证方法之一并配置必填字段。

   1. 对于**默认 OAuth 应用程序：**

      无需其他凭证。选择**下一步**以继续。

   1. 对于**自定义 OAuth 应用程序**，请配置以下字段：
      + **基本网址**（可选）— Slack API 基础网址。示例：`https://slack.com/api`
      + **客户端 ID** — 来自你的 Slack 应用程序的客户端 ID。
      + **客户密钥**-来自你的 Slack 应用程序的客户端密钥。
      + **令牌网址**-令牌端点。示例：`https://slack.com/api/oauth.v2.access`
      + **授权 URL**-授权端点。示例：`https://slack.com/oauth/v2/authorize`
      + **重定向 URL** — Pre-filled 使用 Amazon 快速回传网址。

   1. 对于**不记名令牌**，请配置以下字段：
      + **基本网址**（可选）— Slack API 基础网址。示例：`https://slack.com/api`
      + **机器人令牌** — 您的 Slack 机器人令牌（开头为`xoxb-`）。

1. 选择**下一步**。

1. 如果您选择**默认 OAuth 应用程序或**自定义 OAuth 应用程序****，则会打开 Slack 授权窗口。查看请求的权限，选择您的工作空间，然后选择**允许**。

1. 在 “**查看**” 页面上，查看连接器的可用操作。选择**下一步**。

1. 在 “**发布**” 页面上，选择谁可以访问连接器。您可以为组织中的所有人启用访问权限，也可以搜索特定的团队或群组。

1. 选择**发布**。

## 可用操作
<a name="slack-integration-actions"></a>

设置连接器后，可以执行以下操作。


**Slack 可用操作**  

| 类别 | 处理建议 | 说明 | 
| --- | --- | --- | 
|  消息 | 聊天帖子消息 | 向频道、私信或私人群组发布消息。 | 
|  消息 | 给我发消息 | 向频道发送第三人称操作消息。 | 
|  消息 | 获取消息固定链接 | 检索特定消息的永久链接 URL。 | 
| 渠道 | 对话创建 | 创建公共或私人频道。 | 
| 渠道 | 对话记录 | 从频道检索消息历史记录。仅返回主时间轴消息，不返回主题回复。 | 
| 渠道 | 对话回复 | 检索对特定家长消息的主题回复。 | 
| 渠道 | 对话邀请 | 邀请用户访问现有频道。 | 
| 渠道 | 对话加入 | 加入现有频道。 | 
| 渠道 | 对话大放异彩 | 将用户从频道中移除。 | 
| 渠道 | 对话离开 | 离开频道。 | 
| 渠道 | 对话成员 | 列出频道的成员 ID。 | 
| 渠道 | 对话已打开 | 打开或恢复私信或多人私信。 | 
| 渠道 | 对话设定主题 | 设置或更新频道的主题。 | 
| 渠道 | 获取对话 | 按 ID 检索频道的元数据。 | 
| 渠道 | 列出频道 | 列出用户可用的频道。 | 
| 渠道 | 列出用户的对话 | 列出用户可访问的频道和私信。 | 
| 反应 | 创建反应 | 为消息添加表情符号反应。 | 
| 反应 | 删除反应 | 移除消息中的表情符号反应。 | 
| 反应 | 列出反应 | 列出对消息、文件或文件评论的回应。 | 
| 文件 | 上传或创建文件 | 将文件或媒体上传到频道或话题。 | 
| 文件 | 上传到外部网址 | 添加对外部文件的引用，以便在 Slack 中共享。 | 
| 文件 | 下载文件 | 下载在 Slack 中共享的文件。 | 
| 文件 | 文件信息 | 检索文件的元数据和注释。 | 
| 文件 | 文件清单 | 使用可选筛选器列出工作区中的文件。 | 
| Search | 搜索全部 | 在整个工作区中搜索消息和文件。 | 
| Search | 搜索消息 | 使用日期范围和过滤器搜索邮件。 | 
| Search | 搜索频道 | 按名称、主题或目的搜索频道。 | 
| Search | 搜索用户 | 按电子邮件、姓名或显示名称搜索用户。 | 
| Search | 搜索上下文 | 跨消息、文件、频道和用户进行搜索。支持使用 Slack 人工智能在工作空间上进行语义搜索。 | 
| Search | 获取搜索配置 | 检查工作区中是否提供语义搜索。 | 
| Users | 获取用户详细信息 | 按 ID 检索用户信息。 | 
| Users | 获取用户个人资料 | 检索用户的个人资料信息。 | 
| Users | 用户配置文件集 | 更新用户的个人资料字段。 | 
| Users | 用户名单 | 列出工作区中的所有用户。 | 
| 用户组 | 用户组创建 | 创建新的用户组。 | 
| 用户组 | 用户组列表 | 列出工作区中的用户组。 | 
| 用户组 | 用户组用户更新 | 替换用户组的所有成员。 | 
| 提醒 | 提醒事项添加 | 使用指定的文本和时间创建提醒。 | 
| Workspace | 获取队伍 | 检索有关 Slack 工作空间的元数据。 | 

**注意**  
您可以使用的操作取决于为 Slack 应用程序配置的范围以及经过身份验证的用户可访问的频道。

## 管理和故障排除
<a name="slack-integration-troubleshooting"></a>

要编辑、共享或删除您的连接器，请参阅[管理现有集成](integration-workflows.md#managing-existing-integrations)。

### 身份验证问题
<a name="slack-troubleshooting-auth"></a>
+ **Sign-in 失败（默认 OAuth 应用程序或自定义 OAuth 应用程序）**[— 确认您的 Slack 工作区处于活动状态，并且可以直接登录 Slack 网站。](https://slack.com)对于自定义 OAuth 应用程序，请确认您的 Slack 应用程序中的重定向网址与 Amazon Quick 回传网址相匹配。
+ **无效的客户端凭证（自定义 OAuth 应用程序）**-验证客户端 ID 和客户端密钥是否与 Slack 应用程序的 “基本信息” 部分中的值相匹配。
+ **不记名令牌被拒绝** — 验证您的机器人令牌是否处于活动状态且开头`xoxb-`为。可以从 Slack API 控制面板中撤消代币。
+ **权限不足**-验证为 Slack 应用程序配置的范围是否包含您要使用的操作所需的权限。请参阅[推荐瞄准镜](#slack-oauth-scopes)。
+ **频道未找到或不在频道中**-验证机器人是否已添加到频道中。在尝试发布消息或阅读历史记录之前，请邀请机器人加入频道。