Slack

集成版本:23.0

配置 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 中提问。

参数

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

运行于

此操作会在所有实体上运行。

操作执行结果

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

构建块

说明

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

参数

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

剧本使用场景示例

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

运行于

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

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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 执行

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

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

常规

创建频道

说明

创建 Slack 频道。

参数

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

指定频道的名称。

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

用户 ID 字符串 不适用

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

示例:U014JDHLW87、U08544ABC85。

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

运行于

此操作会在所有实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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}’时出错。原因:为“要返回的最大记录数”提供的值无效:。应提供正数"。"

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

常规

获取用户详细信息

说明

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

参数

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

电子邮件

可能的值:

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

剧本使用场景示例

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

运行于

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

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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):“Failed to find user details based on the provided criteria: Search by: <0> User value: <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 Email Confirmed
常规

按 ID 获取用户详细信息

说明

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

参数

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

运行于

此操作会在所有实体上运行。

操作执行结果

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

列出频道

说明

获取 Slack 频道列表。

参数

不适用

运行于

此操作会在所有实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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 用户列表。

参数

不适用

运行于

此操作会在所有实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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

说明

测试连接。

参数

不适用

运行于

此操作会在所有实体上运行。

操作执行结果

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

重命名频道

说明

重命名 Slack 频道。

参数

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

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

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

频道 ID 字符串 不适用

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

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

新建名称 字符串 不适用

为频道指定新名称。

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

运行于

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

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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,也可以指定用户的电子邮件地址。

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

剧本使用场景示例

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

运行于

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

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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):“Message was not sent because of occurred error: (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。

剧本使用场景示例

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

运行于

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

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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):“Message was not sent because of occurred error: (0}”(错误文本)

异步功能的案例墙消息

等待回复期间的迭代的支持请求墙消息:“等待对通过 Webhook 发送的消息的回复。Webhook url with uuid: {0}".format(webhook url from integration configuration + web token 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 Interactive Message" action! 错误为 {0}".format(exception.stacktrace)

常规

发送消息

说明

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

参数

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

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

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

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

运行于

此操作会在所有实体上运行。

操作执行结果

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

上传文件

说明

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

参数

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

运行于

此操作会在所有实体上运行。

操作执行结果

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

等待回复

说明

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

参数

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

策略方案应用场景

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

运行于

此操作会在所有实体上运行。

操作执行结果

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

通过 Webhook 等待回复

说明

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

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

参数

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

剧本使用场景示例

等待通过 webhook 收到的消息回复。

运行于

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

操作执行结果

脚本结果
脚本结果名称 值选项 示例
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 url with uuid: {0}".format(webhook url from integration configuration + web token 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 专业人士那里获得解答。