Slack

本文档提供了有关如何将 Slack 与 Google SecOps 集成的指南。

配置 Slack 以与 Google Security Operations 搭配使用

如需将 Slack 配置为与 Google SecOps 搭配使用,首先需要创建新应用:

  1. 前往 https://api.slack.com/,然后点击 Start Building。

  2. 输入应用名称和开发 Slack 工作区参数。点击创建应用。

    创建 Slack 应用对话框

  3. 前往 OAuth 和权限标签页,然后向下滚动到范围部分。

    “OAuth 和权限”标签页

  4. 添加以下范围/权限。Slack 建议为机器人添加 OAuth 令牌范围,而不是用户权限:

    • channels:history
    • channels:manage
    • channels:read
    • chat:write
    • files:write
    • groups:history
    • groups:write
    • groups:read
    • im:read
    • im:write
    • im:history
    • mpim:read
    • mpim:history
    • mpim:write
    • users:read
    • users:read.email

    “权限范围”对话框

  5. 如需允许应用进行互动,以执行“发送互动消息”和“等待通过 Webhook 进行回复”等操作,请为您的应用添加请求网址。如需了解详情,请参阅 Slack 文档中的在 Slack 应用中处理用户互动文档。

  6. 向上滚动,然后点击将应用安装到工作区。

    “将应用安装到工作区”按钮的位置

  7. 点击允许。

    LabBot 权限访问设置

  8. 复制已创建的令牌之一,具体取决于您要使用机器人还是用户。

  9. 使用其中一个令牌配置集成。

网络

函数 默认端口 方向 协议
API 多值 出站 apitoken

在 Google SecOps 中配置 Slack 集成

有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。

集成参数

使用以下参数配置集成:

参数显示名称 类型 默认值 是否为必需参数 说明
实例名称 字符串 不适用 否 您打算为之配置集成的实例的名称。
说明 字符串 不适用 否 实例的说明。
API 令牌 字符串 不适用 是 在 Slack 控制台中生成的 API 令牌。
验证 SSL 复选框 尚未核查 否 如果您的 Slack 连接需要 SSL 验证,请选中此复选框(默认情况下未选中)。
远程运行 复选框 尚未核查 否 选中相应字段,以便远程运行配置的集成。选中后,系统会显示用于选择远程用户(客服人员)的选项。

操作

提问

说明

在 Slack 中提问。

参数

参数名称 类型 默认值 为必需参数 说明
渠道 字符串 不适用 是 目标渠道。
问题 字符串 不适用 是 问题内容。

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
N/A

构建块

说明

根据提供的输入条件构建 Slack 消息块。此操作会创建一个包含 webhook 的块,该 webhook 稍后可传递给“发送互动消息”操作,以发送消息。

参数

参数名称 类型 默认值 为必需参数 说明
问题 字符串 不适用 是 指定要添加到块中的问题文本。
回答按钮 字符串 不适用 是 指定要添加到块中的回答按钮。
Siemplify 基准网址 字符串 不适用 是 指定要添加到代码块中的 Google SecOps 服务器基础网址。
支持请求 ID 字符串 不适用 是 指定要添加到代码块中的 Google SecOps 支持请求 ID。
Webhook 令牌 UUID 字符串 不适用 是 指定要监控的 Webhook 令牌 UUID,以获取用户的响应。

剧本使用场景示例

构建一个可稍后传递给“发送高级消息”操作的块,以发送包含块的消息。

Run On

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
{
  "result": "[{\"type\": \"section\", \"block_id\": \"f99958f1-c1f1-4fdb-bb8b-a382d952d5bd\", \"text\": {\"type\": \"mrkdwn\", \"text\": \"yes?\", \"verbatim\": false}},{\"type\": \"actions\", \"block_id\": \"2850e684-472a-472f-9a32-96294cbe9046\", \"elements\": [{\"type\": \"button\", \"text\": {\"type\": \"plain_text\", \"text\": \"y\"}, \"action_id\": \"y\", \"url\": \"...\"}, {\"type\": \"button\", \"text\": {\"type\": \"plain_text\", \"text\": \"n\"}, \"action_id\": \"n\", \"url\": \"...\"}, {\"type\": \"button\", \"text\": {\"type\": \"plain_text\", \"text\": \"View Case in Siemplify\"}, \"action_id\": \"View Case in Siemplify\", \"url\": \"...\"}]}]"
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功创建了 build 块 (is_succeed=True):“Slack 块已成功创建。”

如果因某些常规错误而无法创建 Slack 块 (is_succeed=False):“Failed to create a block because of the occurred error: {0}”.format(error text)

操作应失败并停止 playbook 执行:

如果集成配置中未指定基于网络钩子的网址:“无法执行操作,请指定‘网络钩子基本网址’集成参数。”

如果系统报告了严重错误,例如凭据错误、无法连接到服务器或其他错误,则会显示以下消息:“Failed to execute "Send Advanced Message" action! 错误为 {0}".format(exception.stacktrace)

常规

创建频道

说明

创建 Slack 频道。

参数

参数名称 类型 默认值 为必需参数 说明
频道名称 字符串 不适用 是

指定频道的名称。

注意:频道名称只能包含小写字母、数字、连字符和下划线,且不得超过 80 个字符。

用户 ID 字符串 不适用 是

指定应邀请加入新创建的渠道的用户的 ID。

示例:U014JDHLW87、U08544ABC85。

是否为私密 复选框 尚未核查 否 如果启用,该操作会创建私密频道。

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "is_general": "False",
    "name_normalized": "12asd1237712318",
    "is_channel": "True",
    "creator": "U014J4NFQQG",
    "is_member": "True",
    "is_archived": "False",
    "topic": {
        "last_set": "0",
        "value": " ",
        "creator": " "
    },
    "parent_conversation": "None",
    "is_im": "False",
    "is_ext_shared": "False",
    "previous_names": [],
    "last_read": "0000000000.000000",
    "id": "C014S1G6DB4",
    "is_org_shared": "False",
    "pending_connected_team_ids": [],
    "is_pending_ext_shared": "False",
    "is_mpim": "False",
    "is_group": "False",
    "shared_team_ids": ["T013MJHSNCT"],
    "purpose": {
        "last_set": 0,
        "value": " ",
        "creator": " "
    },
    "is_private": "False",
    "is_shared": "False",
    "name": "12asd1237712318",
    "created": "1591194197",
    "pending_shared": [],
    "unlinked": 0,
    "priority": 0
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果“ok”== true 且“Private”操作参数为 false 且 User IDs 参数为空 (is_success=true):

“已成功创建渠道 {0}”.format(name)

如果“ok”== true 且“Private”操作形参为 true 且“User IDs”形参为空(is_success=true):“Successfully created private channel {0}".format(name)

如果“ok”== true 且“Private”操作形参为 false 且用户 ID 可用 (is_success=true):“已成功创建渠道 {0} 并添加了 {1} 位用户”。format(name, user_ids)

如果“ok”== true 且“Private”操作参数为 true 且用户 ID 可用 (is_success=true):

“Successfully created private channel {0} and added {1} users”.format(name, user_ids)

如果“ok”为 false。在第一个请求中(is_success=false):

“未能创建渠道 {0}。原因:{1}".format(name, value of error parameter from response)

如果第二个请求中的“ok”为 false(is_success=false):

“已创建渠道 {0},但未邀请用户。原因:".format(name, value of error parameter from response)

如果“ok”为 false 且 error 为“user_not_found”(is_success=false):

“无法将用户添加到频道 {0}。Reason: {1} of the specified User IDs does not exist in Slack".format(name, len(errors) from the response)

操作应失败并停止 playbook 执行:

如果 报告了严重错误(凭据错误、连接错误、操作崩溃):“执行操作‘创建频道’时出错。原因:{0}''.format(error.Stacktrace)

常规

获取频道或用户对话历史记录

说明

根据提供的输入条件获取用户或频道的对话记录。此操作适用于频道 ID 或用户 ID,可通过“列出频道”或“列出用户”操作进行搜索。

参数

参数名称 类型 默认值 为必需参数 说明
频道或用户 ID 字符串 不适用 是 指定要提取对话记录的频道或用户 ID。
时间范围 DDL

过去 1 小时

可能的值:

  • 过去 1 小时
  • 过去 6 小时
  • 过去 24 小时
  • 上周
  • 上个月
  • 自定义
否

指定结果的时间范围。

如果选择“自定义”,您还需要提供“开始时间”参数。

开始时间 字符串 不适用 否

指定结果的开始时间。

如果为“时间范围”参数选择“自定义”,则此参数是必需的。

格式:ISO 8601。

示例:2021-08-05T05:18:42Z

结束时间 字符串 不适用 否

指定结果的结束时间。

如果未提供任何内容,并且为“时间范围”参数选择了“自定义”,则此参数会使用当前时间。

格式:ISO 8601。

示例:2021-08-05T05:18:42Z。

要返回的记录数上限 整数 20 否

指定要返回的记录数。

如果未提供任何内容,该操作会返回 20 条记录。

剧本使用场景示例

提取对话历史记录以调查提醒。

运行于

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
[
  {
    "bot_id": "B02D9QYM7P0",
    "type": "message",
    "text": "test",
    "user": "U02D1RPLVST",
    "ts": "1665988448.627219",
    "app_id": "A02DDGD942Z",
    "team": "T02CX3N6B0B",
    "bot_profile": {
      "id": "B02D9QYM7P0",
      "deleted": false,
      "name": "Siemplify-test",
      "updated": 1630908872,
      "app_id": "A02DDGD942Z",
      "icons": {
        "image_36": "https://a.slack-edge.com/80588/img/plugins/app/bot_36.png",
        "image_48": "https://a.slack-edge.com/80588/img/plugins/app/bot_48.png",
        "image_72": "https://a.slack-edge.com/80588/img/plugins/app/service_72.png"
      },
      "team_id": "T02CX3N6B0B"
    },
    "blocks": [
      {
        "type": "rich_text",
        "block_id": "JbVUf",
        "elements": [
          {
            "type": "rich_text_section",
            "elements": [
              {
                "type": "text",
                "text": "test"
              }
            ]
          }
        ]
      }
    ]
  }
]
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功找到对话记录 (is_succeed=True):“成功提取了对话记录。”

如果找不到具有所提供 ID 的对话 (is_succeed=False):“Failed to find conversation for provided id {0}".format(channel_or_user_id)

如果找到了具有指定 ID 的对话,但未找到指定时间范围内的消息 (is_succeed=False):“找到了 ID 为 {0} 的对话,但未找到指定时间范围内的消息。”。format(channel_or_user_id)

操作应失败并停止 playbook 执行:

如果报告了致命错误(例如凭据错误、未连接到服务器或其他错误):“Failed to execute "Send Advanced Message" action! 错误为 {0}".format(exception.stacktrace)

如果为“要返回的最大记录数”参数提供的值无效:“执行操作‘{action name}’时出错。原因:为“要返回的最大记录数”提供的值无效:。应提供正数"。"

如果为“时间范围”参数选择了“自定义”,但未指定“开始时间”参数:“执行操作‘{操作名称}’时出错。原因:“未为自定义时间范围提供开始时间。”

常规

获取用户详细信息

说明

根据提供的输入条件获取 Slack 用户详细信息。

参数

参数名称 类型 默认值 为必需参数 说明
搜索条件 DDL

电子邮件

可能的值:

  • 电子邮件
  • 名称
  • ID
是 指定用于搜索用户详细信息的参数。
用户价值 字符串 不适用 是 指定要搜索的用户值。

剧本使用场景示例

获取用户详细信息,以便在 Google SecOps 中丰富提醒处理。

Run On

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
  "id": "U043FPEMATG",
  "team_id": "T02CX3N6B0B",
  "name": "example.user",
  "deleted": false,
  "color": "3c989f",
  "real_name": "Example User",
  "tz": "Europe/Europe",
  "tz_label": "Central European Summer Time",
  "tz_offset": 7200,
  "profile": {
    "title": "",
    "phone": "",
    "skype": "",
    "real_name": "Example User",
    "real_name_normalized": "Example User",
    "display_name": "Example User",
    "display_name_normalized": "Example User",
    "fields": null,
    "status_text": "",
    "status_emoji": "",
    "status_emoji_display_info": [],
    "status_expiration": 0,
    "avatar_hash": "gc297456197c",
    "email": "example.user@example.com",
    "first_name": "Example",
    "last_name": "User",
    "image_24": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-24.png",
    "image_32": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-32.png",
    "image_48": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-48.png",
    "image_72": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-72.png",
    "image_192": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-192.png",
    "image_512": "https://secure.gravatar.com/avatar/c297456197c0de7baa8c4b9a2398ecd1.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0011-512.png",
    "status_text_canonical": "",
    "team": "T02CX3N6B0B"
  },
  "is_admin": false,
  "is_owner": false,
  "is_primary_owner": false,
  "is_restricted": false,
  "is_ultra_restricted": false,
  "is_bot": false,
  "is_app_user": false,
  "updated": 1663939355,
  "is_email_confirmed": true,
  "who_can_share_contact_card": "EVERYONE"
}
案例墙
结果类型 值 / 说明 类型
输出消息\*

操作不应失败,也不应停止 playbook 执行:

如果成功找到用户详细信息 (is_succeed=True):“已成功提取用户详细信息。”

如果未根据提供的条件找到用户详细信息 (is_succeed=False):“未能根据提供的条件找到用户详细信息:搜索依据:<0> 用户值:<1>”。format(search_by, user_value)

如果按名称找到用户详细信息,但找到多个匹配项 (is_succeed=True):“提供的搜索条件找到了多个匹配项:搜索依据:<0> 用户值:<1>”。format(search_by, user_value)

如果因某些常规错误而找不到用户 (is_succeed=False):“Failed to fetch user details because of occurred error: (0}”(错误文本)

操作应失败并停止 playbook 执行:

如果系统报告了严重错误,例如凭据错误、无法连接到服务器或其他错误,则会显示以下消息:“Failed to execute "Send Advanced Message" action! 错误为 {0}".format(exception.stacktrace)

常规
“案例墙”表格

表格名称:Slack 用户详细信息

表格列:

  • ID
  • 团队 ID
  • 名称
  • 真实姓名
  • 显示名称
  • 名字
  • 姓氏
  • 更新时间
  • 时区
  • 标题
  • 电话
  • 是否为管理员
  • 是所有者
  • 是否为主要所有者
  • Is Restricted
  • 是否为“超限”
  • Is Bot
  • Is App User
  • 电子邮件地址是否已确认
常规

按 ID 获取用户详细信息

说明

按用户 ID 获取用户详细信息。

参数

参数名称 类型 默认值 为必需参数 说明
用户 ID 字符串 不适用 是 用户的 ID。

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
N/A

列出频道

说明

获取 Slack 频道列表。

参数

不适用

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
[
    {
        "is_org_shared": false,
        "is_general": true,
        "name_normalized": "general",
        "name": "general",
        "is_channel": true,
        "created": 1575550599,
        "is_member": true,
        "is_mpim": false,
        "is_archived": false,
        "creator": "URALP6WRJ",
        "topic": {
            "last_set": 1575550599,
            "value": "Company-wide announcements and work-based matters",
            "creator": "URALP6WRJ"
        },
        "num_members": 1,
        "purpose": {
            "last_set": 1575550599,
            "value": "This channel is for workspace-wide communication and announcements. All members are in this channel.",
            "creator": "URALP6WRJ"
        },
        "members": ["URALP6WRJ"],
        "unlinked": 0,
        "is_shared": false,
        "id": "CRB4ZHGNR",
        "is_private": false,
        "previous_names": []
    }, {
        "is_org_shared": false,
        "is_general": false,
        "name_normalized": "random",
        "name": "random",
        "is_channel": true,
        "created": 1575550599,
        "is_member": true,
        "is_mpim": false,
        "is_archived": false,
        "creator": "URALP6WRJ",
        "topic": {
            "last_set": 1575550599,
            "value": "Non-work banter and water cooler conversation",
            "creator": "URALP6WRJ"
        },
        "num_members": 1,
        "purpose": {
            "last_set": 1575550599,
            "value": "A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.",
            "creator": "URALP6WRJ"
        },
        "members": ["URALP6WRJ"],
        "unlinked": 0,
        "is_shared": false,
        "id": "CRD0KF9T9",
        "is_private": false,
        "previous_names": []
    }, {
        "is_org_shared": false,
        "is_general": false,
        "name_normalized": "website",
        "name": "website",
        "is_channel": true,
        "created": 1575550600,
        "is_member": true,
        "is_mpim": false,
        "is_archived": false,
        "creator": "URALP6WRJ",
        "topic": {
            "last_set": 0,
            "value": " ",
            "creator": " "
        },
        "num_members": 1,
        "purpose": {
            "last_set": 0,
            "value": " ",
            "creator": " "
        },
        "members": ["URALP6WRJ"],
        "unlinked": 0,
        "is_shared": false,
        "id": "CRDAUBZP0",
        "is_private": false,
        "previous_names": []
    }
]
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果“ok”== false(is_success=false):“无法列出频道。原因:{0}".format(value of error parameter from response)

常规

列出用户

说明

此操作的作用是获取 Slack 用户列表。

参数

不适用

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
[
    {
        "profile": {
            "status_text": " ",
            "display_name": " ",
            "status_emoji": " ",
            "title": " ",
            "status_text_canonical": " ",
            "team": "TRALP6VNY",
            "real_name": "somerealname",
            "image_24": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-24.png",
            "phone": " ",
            "real_name_normalized": "somerealnamen",
            "image_512": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-512.png",
            "image_72": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-72.png",
            "image_32": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-32.png",
            "image_48": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-48.png",
            "skype": " ",
            "avatar_hash": "g2d62053d7f7",
            "display_name_normalized": " ",
            "status_expiration": 0,
            "email": "mail@seimplify.co",
            "image_192": "https://secure.gravatar.com/avatar/2d62053d7f735bc096de59639eb8f350.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-192.png"
        },
        "updated": 1575550598,
        "tz": "Europe/Moscow",
        "name": "name",
        "deleted": false,
        "is_app_user": false,
        "is_bot": false,
        "tz_label": "Moscow Time",
        "real_name": "realname",
        "color": "9f69e7",
        "team_id": "TRALP6VNY",
        "is_admin": true,
        "is_ultra_restricted": false,
        "is_restricted": false,
        "is_owner": true,
        "tz_offset": 14400,
        "has_2fa": false,
        "id": "URALP6WRJ",
        "is_primary_owner": true
    }, {
        "profile": {
            "last_name": " ",
            "status_emoji": " ",
            "display_name_normalized": "Slackbot",
            "image_32": "https://a.slack-edge.com/80588/img/slackbot_32.png",
            "skype": " ",
            "image_72": "https://a.slack-edge.com/80588/img/slackbot_72.png",
            "status_expiration": 0,
            "image_192": "https://a.slack-edge.com/80588/marketing/img/avatars/slackbot/avatar-slackbot.png",
            "first_name": "slackbot",
            "display_name": "Slackbot",
            "title": " ",
            "real_name_normalized": "Slackbot",
            "always_active": true,
            "status_text_canonical": " ",
            "image_24": "https://a.slack-edge.com/80588/img/slackbot_24.png",
            "phone": " ",
            "image_48": "https://a.slack-edge.com/80588/img/slackbot_48.png",
            "fields": null,
            "real_name": "Slackbot",
            "image_512": "https://a.slack-edge.com/80588/img/slackbot_512.png",
            "team": "TRALP6VNY",
            "avatar_hash": "sv41d8cd98f0",
            "status_text": " "
        },
        "updated": 0,
        "tz": null,
        "name": "slackbot",
        "deleted": false,
        "is_app_user": false,
        "is_bot": false,
        "tz_label": "Pacific Standard Time",
        "real_name": "Slackbot",
        "color": "757575",
        "team_id": "TRALP6VNY",
        "is_admin": false,
        "is_ultra_restricted": false,
        "is_restricted": false,
        "is_owner": false,
        "tz_offset": -28800,
        "id": "USLACKBOT",
        "is_primary_owner": false
    }
]

Ping

说明

测试连接。

参数

不适用

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
N/A

重命名频道

说明

重命名 Slack 频道。

参数

参数名称 类型 默认值 为必需参数 说明
频道名称 字符串 不适用 否

指定要重命名的频道的名称。

注意:如果同时指定了“渠道名称”和“频道 ID”参数,则该操作仅适用于 ID。

频道 ID 字符串 不适用 否

指定要重命名的频道的 ID。

注意:如果同时指定了“渠道名称”和“频道 ID”参数,则该操作仅适用于 ID。

新建名称 字符串 不适用 是

为频道指定新名称。

注意:频道名称只能包含小写字母、数字、连字符和下划线,且不得超过 80 个字符。

Run On

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果

当“ok”== true 时:

{
    "channel": {
        "id": "C013ELA1YVC",
        "name": "project_old",
        "is_channel": true,
        "is_group": false,
        "is_im": false,
        "created": 1589444943,
        "is_archived": false,
        "is_general": false,
        "unlinked": 0,
        "name_normalized": "project_old",
        "is_shared": false,
        "parent_conversation": null,
        "creator": "U0136KZ0P5M",
        "is_ext_shared": false,
        "is_org_shared": false,
        "shared_team_ids": [
            "T013MJHSNCT"
        ],
        "pending_shared": [],
        "pending_connected_team_ids": [],
        "is_pending_ext_shared": false,
        "is_member": true,
        "is_private": false,
        "is_mpim": false,
        "last_read": "1595242486.000300",
        "topic": {
            "value": "",
            "creator": "",
            "last_set": 0
        },
        "purpose": {
            "value": "This *channel* is for working on a project. Hold meetings, share docs, and make decisions together with your team.",
            "creator": "U0136KZ0P5M",
            "last_set": 1589444943
        },
        "previous_names": [
            "project_new",
            "project"
        ]
    },
    "ok": true,
    "warning": "missing_charset",
    "response_metadata": {
        "warnings": [
            "missing_charset"
        ]
    }
}

当“ok”为 false 时:

{
    "ok": false,
    "error": "name_taken",
    "warning": "missing_charset",
    "response_metadata": {
        "warnings": [
            "missing_charset"
        ]
    }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果“ok”== true(is_success=true):“Successfully renamed channel {0} to {1} {0}”.format(name/ID, new name)

如果“ok”== false(is_success=false):“操作无法重命名频道 {0}。原因:{1}".format(name,error from the response)

如果未按频道名称找到频道(is_success=false):“操作无法重命名频道 {0}。原因:找不到频道”。format(name)

操作应失败并停止 playbook 执行:

如果系统报告严重错误(凭据错误、连接错误、操作崩溃),请执行以下操作:“执行操作‘重命名频道’时出错。原因:{0}''.format(error.Stacktrace)

如果未指定“频道名称”和“频道 ID”参数:“执行操作‘重命名频道’时出错。”原因:您需要指定“渠道名称”或“频道 ID”。

常规

发送高级消息

说明

向 Slack 频道或用户发送高级消息。此操作可用于发送简单的文本消息和包含按钮、高级格式设置等的丰富 Slack 块消息。如需详细了解块消息,请参阅 Slack Block Kit 。

此操作可与“等待通过 Webhook 进行回复”操作搭配使用,以先通过 Webhook 向用户发送块消息,然后再通过“等待通过 Webhook 进行回复”操作检查用户的回复。

参数

参数名称 类型 默认值 为必需参数 说明
消息类型 DDL

文本

可能的值:

  • 文本
  • 屏蔽
是 指定要发送的消息类型。
接收者类型 DDL

名称

可能的值:

  • 名称
  • ID
  • 电子邮件
是

指定要向其发送消息的频道或用户名(全名)。

可以选择指定频道或用户 ID,也可以指定用户的电子邮件地址。

收件人 字符串 不适用 是 指定消息收件人。
消息 字符串 不适用 是 指定要发送的消息的内容。

剧本使用场景示例

发送包含按钮、链接或图片等富媒体内容的消息。

Run On

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
[
  {
    "Entity": "U043FPEMATG",
    "EntityResult": {
      "channel": "D044C3DUMB2",
      "message": {
        "bot_id": "B02D9QYM7P0",
        "type": "message",
        "text": "test msg",
        "user": "U02D1RPLVST",
        "ts": "1666008612.116169",
        "app_id": "A02DDGD942Z",
        "team": "T02CX3N6B0B",
        "bot_profile": {
          "id": "B02D9QYM7P0",
          "app_id": "A02DDGD942Z",
          "name": "test",
          "icons": {
            "image_36": "https://a.slack-edge.com/80588/img/plugins/app/bot_36.png",
            "image_48": "https://a.slack-edge.com/80588/img/plugins/app/bot_48.png",
            "image_72": "https://a.slack-edge.com/80588/img/plugins/app/service_72.png"
          },
          "deleted": false,
          "updated": 1630908872,
          "team_id": "T02CX3N6B0B"
        },
        "blocks": [
          {
            "type": "rich_text",
            "block_id": "RJvg",
            "elements": [
              {
                "type": "rich_text_section",
                "elements": [
                  {
                    "type": "text",
                    "text": "test msg"
                  }
                ]
              }
            ]
          }
        ]
      },
      "ts": "1666008612.116169",
      "ok": true
    }
  }
]
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果消息发送成功 (is_succeed=True):“Message was sent successfully”(消息已成功发送)

如果因找不到指定收件人而导致消息未成功发送 (is_succeed=False):“Message was not sent as the specified recipient {0} with type {1} was not found.”(收件人、收件人类型)

如果由于某些常规错误而导致消息未成功发送 (is_succeed=False):“由于发生错误,消息未发送:(0}”(错误文本)

操作应失败并停止 playbook 执行:

如果报告了致命错误(例如凭据错误、未连接到服务器或其他错误):“Failed to execute "Send Advanced Message" action! 错误为 {0}".format(exception.stacktrace)

常规

发送互动式消息

说明

向渠道或用户发送互动消息,并根据提供的 Webhook UUID 检查用户的回答。此操作类似于“发送高级消息”操作,但它仅允许发送块内容(而非纯文本消息),并且还需要一个 Webhook UUID 来检查用户对 Webhook 的响应。

该操作是异步的,请在 IDE 中相应地调整操作超时时间。

配置集成中使用的 Slack 应用,以允许互动式消息。如需详细了解 Slack 应用配置,请参阅准备应用以接收互动消息。

参数

参数名称 类型 默认值 为必需参数 说明
接收者类型 DDL

名称

可能的值:

  • 名称
  • ID
  • 电子邮件
是

指定要向其发送消息的频道或用户名(全名)。

可以选择指定频道或用户 ID,也可以指定用户的电子邮件地址。

收件人 字符串 不适用 是 指定消息收件人。
消息 字符串 不适用 是 指定要发送的消息的内容。
Webhook 令牌 UUID 字符串 不适用 是 指定要监控的用户响应的 webhook 令牌 UUID。

剧本使用场景示例

发送包含按钮、链接或图片等富媒体内容的消息。

Run On

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
[
  {
    "uuid": "10953f8e-7ef8-4bde-9e9b-212005e0e737",
    "type": "web",
    "token_id": "47289ba5-277e-4ab9-9238-eb31080530ca",
    "ip": "0000:a000000:ad80:000:20ea:653:fb97",
    "hostname": "webhook.site",
    "method": "GET",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15",
    "content": "",
    "query": {
      "Answer": "yes"
    },
    "headers": {
      "connection": [
        "close"
      ],
      "accept-encoding": [
        "gzip, deflate, br"
      ],
      "accept-language": [
        "en-US,en;q=0.9"
      ],
      "user-agent": [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15"
      ],
      "cookie": [
        "_ga=GA"
      ],
      "accept": [
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ],
      "host": [
        "webhook.site"
      ],
      "content-length": [
        ""
      ],
      "content-type": [
        ""
      ]
    },
    "url": "https://webhook.site/47289ba5-277e-4ab9-9238-xx0000000xx?Answer=yes",
    "size": 0,
    "files": [],
    "created_at": "2022-10-14 19:45:40",
    "updated_at": "2022-10-14 19:45:40",
    "sorting": 1665776740032262,
    "custom_action_output": []
  }
]
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果消息发送成功 (is_succeed=True):“Message was sent successfully”(消息已成功发送)

如果因找不到指定收件人而导致消息未成功发送 (is_succeed=False):“Message was not sent as the specified recipient {0} with type {1} was not found.”(收件人、收件人类型)

如果由于某些常规错误而导致消息未成功发送 (is_succeed=False):“由于发生错误,消息未发送:(0}”(错误文本)

异步功能的案例墙消息:

等待回复期间的迭代的支持请求墙消息:“等待对通过 Webhook 发送的消息的回复。Webhook 网址,包含 UUID:{0}".format(来自集成配置的网络钩子网址 + Web 令牌 UUID)

如果成功提取了响应 (is_succeed=True):“已成功提取用户对 webhook 的响应!响应内容:{0}".format(载荷 that was sent from user to a webhook)

如果在超时之前未能提取到响应:“未找到对 webhook 的用户响应,操作因超时而停止。”

操作应失败并停止 playbook 执行:

如果集成配置中未指定基于网络钩子的网址,但指定了网络钩子 UUID 令牌:“无法执行操作,请指定‘网络钩子基本网址’集成参数。”

如果报告了致命错误(例如凭据错误、未连接到服务器或其他错误):“Failed to execute "Send Interactive Message" action! 错误为 {0}".format(exception.stacktrace)

常规

发送消息

说明

向一位用户或多位用户/多个频道发送消息。

参数

参数名称 类型 默认值 为必需参数 说明
渠道 字符串 不适用 是

要向其发送消息的 Slack 渠道的名称或用户的电子邮件地址。

输入的值需要以逗号分隔。

消息 字符串 不适用 是 消息内容。

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
N/A

上传文件

说明

将文件添加到 Slack 并与队友分享,以便开展协作。 您可以从设备或首选的文件管理应用中选择文件并将其上传到 Slack。上传的文件会存储在工作区中,并且可以搜索和共享。

参数

参数名称 类型 默认值 为必需参数 说明
文件名 字符串 不适用 是 目标文件名。
文件路径 字符串 不适用 是 目标文件路径。
渠道 字符串 不适用 是 目标渠道。

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
N/A

等待回复

说明

等待频道中消息的串式回复。

参数

参数名称 类型 默认值 为必需参数 说明
渠道 字符串 不适用 是 目标渠道。
消息时间戳 字符串 不适用 是 要获取回复的消息的时间戳(以毫秒为单位)。
频道 ID 字符串 不适用 否 目标 Slack 频道的 ID。

Playbook 使用场景

包含“发送消息”操作且在等待回复后(以渠道作为上一个操作中的占位符 - 频道 ID)的 playbook

Run On

此操作会针对所有实体运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
N/A

通过 Webhook 等待回复

说明

等待用户回复通过 webhook 发送的消息。此操作会定期检查所提供的 Webhook,以查看用户是否已向其提供任何回复。如果已发送包含 webhook 的 block 消息,则可以将此操作与“发送高级消息”操作搭配使用,以检查用户的回答是否已提供给 webhook。

此操作是异步的,请在 IDE 中相应地调整脚本超时值。

参数

参数名称 类型 默认值 为必需参数 说明
Webhook 令牌 UUID 字符串 不适用 是 指定要监控的用户响应的 webhook 令牌 UUID。

剧本使用场景示例

使用 webhook 等待消息回复。

Run On

此操作不会在实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_succeed True/False is_succeed:False
JSON 结果
{
  "client_msg_id": "00000000-0000-0000-0000-000000000000",
  "type": "message",
  "text": "Yes",
  "user": "U0000000",
  "ts": "1578390603.001200",
  "team": "T0000000",
  "blocks": [
    {
      "type": "rich_text",
      "block_id": "2Bb=",
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [
            {
              "type": "text",
              "text": "Example"
            }
          ]
        }
      ]
    }
  ],
  "thread_ts": "1578390492.001100",
  "parent_user_id": "U0000000"
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

等待回复期间的迭代的支持请求墙消息:“等待对通过 Webhook 发送的消息的回复。Webhook 网址,包含 UUID:{0}".format(来自集成配置的网络钩子网址 + Web 令牌 UUID)

如果成功提取响应 (is_succeed=True):“Successfully fetched the user's response to a webhook! 响应内容:{0}".format(载荷 that was sent from user to a webhook)

如果在超时之前未能提取到响应:“未找到对 webhook 的用户响应,操作因超时而停止。”

操作应失败并停止 playbook 执行:

如果集成配置中未指定基于 Webhook 的网址,但指定了 Webhook UUID 令牌:“无法执行操作,请指定‘Webhook 基本网址’集成参数。”

如果报告了致命错误(例如凭据错误、未连接到服务器或其他错误):“Failed to execute "Send Advanced Message" action! 错误为 {0}".format(exception.stacktrace)

常规

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。