Slack

利用 Dialogflow 的 Slack 集成,您可以轻松创建自己的 Slack 应用和聊天机器人,并训练它们理解自然语言。

设置 Slack

要为代理设置 Slack 集成服务,您需要符合以下条件:

创建 Slack 应用

  1. 转到 Slack 开发者控制台
  2. 输入应用的名称
  3. 选择您希望与该应用关联的团队
  4. 点击 Create App 按钮

添加聊天机器人用户

  1. 点击左侧菜单中的 Bot Users
  2. 点击 Add a Bot User 按钮
  3. 输入 Slack 聊天机器人的名称(这是用户添加您的聊天机器人时将看到的名称)
  4. 启用 Always Show My Bot as Online
  5. 点击 Add Bot User 按钮

在 Dialogflow 中启用集成服务

在 Slack 开发者控制台中,点击左侧菜单中的 Basic Information,然后向下滚动到 App Credentials 部分。记下 Client IDClient SecretVerification Token

  1. 在 Dialogflow 中,转到左侧菜单中的集成 (Integrations)
  2. 点击 Slack 图块
  3. 在以下字段中输入相关值:
    1. 客户端 ID (Client ID)
    2. 客户端密钥 (Client Secret)
    3. 验证令牌 (Verification Token)
  4. 点击开始 (Start)

继续设置 Slack

现在您已经设置了 Slack 和 Dialogflow,接下来,您将启用 OAuth、事件请求网址(由 Dialogflow 提供)和事件订阅。

添加 OAuth 网址

  1. 从 Dialogflow 的 Slack 设置页面复制 OAuth 网址
  2. 转到 Slack 开发者控制台,点击左侧菜单中的 OAuth & Permissions
  3. 点击 Add a new Redirect URL 按钮并粘贴 OAuth 网址
  4. 点击 Add

添加事件请求网址

  1. 从 Dialogflow 的 Slack 设置页面复制事件请求网址
  2. 转到 Slack 开发者控制台,点击左侧菜单中的 Event Subscriptions
  3. 点击开关以启用事件,并将事件订阅网址粘贴到 Request URL 字段中

    片刻之后,您会在“Request URL”字段上方看到绿色的“Verified”字样。
  4. 更新完这两项设置后,点击页面底部的 Save Changes 按钮。

启用事件订阅

  1. 点击左侧菜单中的 Event Subscriptions
  2. 点击开关以启用该选项
  3. Subscribe to Bot Events 下方,点击 Add Bot User Event 按钮

    随即将显示文本字段和事件列表。您可以在此字段中输入字词,以搜索您希望聊天机器人响应的事件。以下是我们建议添加的事件列表:

    事件名称 事件说明
    message.im 消息已在直接消息频道中发布
    message.groups 消息已发布到专用频道
    message.channels 消息已发布到频道
    im_created 创建了直接消息

  4. 添加事件后,点击屏幕底部的 Save Changes 按钮

将 Slack 聊天机器人添加到团队中

  1. 在 Slack 开发者控制台中,点击左侧菜单中的 Manage Distribution
  2. Share Your App with Your Team 部分下方,点击 Add to Slack 按钮
  3. 在下一页上,点击 Authorize 按钮以添加代理

测试

您可以测试代理而不创建公共 Slack 聊天机器人。为此,请转到代理的集成 (Integrations) 页面,然后点击 Slack 图块上的开关。 在弹出窗口中,点击在 Slack 中测试 (Test In Slack) 按钮。

系统将提示您登录 Slack。登录后,导航到实例并找到名为 @dialogflow-bot 的聊天机器人用户。您可以直接向代理发送消息来对其进行测试,或将其添加到实例中的频道。

事件

此集成服务调用以下事件

事件 说明
SLACK_WELCOME 当用户开始与 Slack 聊天机器人对话时,即会触发该事件。

富响应消息

系统支持下列富响应消息

图片响应

支持的格式和大小:

  • gif
  • jpeg
  • png
  • bmp

卡片响应

Slack 中的卡片没有必填字段,您可以使用任何元素组合。

支持带有网址和文本回传的按钮。带有网址的按钮会显示为超链接。

快速回复响应

一键式 Slack 集成服务支持快速回复,相当于 Slack 交互式按钮的文本版本。

自定义载荷响应

一键式 Slack 集成服务中的带格式文本

您的 Slack 聊天机器人可以发送带格式的文本,如以下示例所示:

{
  "slack": {
    "text": "This is an example of *bold*, _italic_, and `code`."
  }
}