airflow.providers.slack.hooks.slack_webhook

模块内容

SlackWebhookHook

此类提供对 slack_sdk.WebhookClient 的薄封装。

函数

check_webhook_response(func)

检查 WebhookResponse,如果状态码 != 200,则引发错误。

属性

LEGACY_INTEGRATION_PARAMS

airflow.providers.slack.hooks.slack_webhook.LEGACY_INTEGRATION_PARAMS = ('channel', 'username', 'icon_emoji', 'icon_url')[source]
airflow.providers.slack.hooks.slack_webhook.check_webhook_response(func)[source]

检查 WebhookResponse,如果状态码 != 200,则引发错误。

class airflow.providers.slack.hooks.slack_webhook.SlackWebhookHook(*, slack_webhook_conn_id, timeout=None, proxy=None, retry_handlers=None, **extra_client_args)[source]

基类: airflow.hooks.base.BaseHook

此类提供对 slack_sdk.WebhookClient 的薄封装。

此 hook 允许您使用传入 Webhook 将消息发布到 Slack。

注意

使用传入 Webhook 发布消息时,您无法覆盖默认频道(由安装您的应用的用户选择)、用户名或图标。相反,这些值将始终继承自关联的 Slack 应用配置 (链接)。只有在 旧版 Slack 集成传入 Webhook 中才能更改此值。

警告

此 hook 旨在与 Slack 传入 Webhook 连接一起使用,并且可能无法与 Slack API 连接正确配合使用。

示例
# Create hook
hook = SlackWebhookHook(slack_webhook_conn_id="slack_default")

# Post message in Slack channel by JSON formatted message
# See: https://api.slack.com/messaging/webhooks#posting_with_webhooks
hook.send_dict({"text": "Hello world!"})

# Post simple message in Slack channel
hook.send_text("Hello world!")

# Use ``slack_sdk.WebhookClient``
hook.client.send(text="Hello world!")
参数
  • slack_webhook_conn_id (str) – 在密码字段中包含传入 Webhook 令牌的 Slack 传入 Webhook 连接 ID。

  • timeout (int | None) – 客户端将等待连接并接收来自 Slack 的响应的最大秒数。如果未设置,则将使用默认的 WebhookClient 值。

  • proxy (str | None) – 用于进行 Slack 传入 Webhook 调用的代理。

  • retry_handlers (list[slack_sdk.http_retry.RetryHandler] | None) – 用于自定义 slack_sdk.WebhookClient 中的重试逻辑的处理程序列表。

conn_name_attr = 'slack_webhook_conn_id'[source]
default_conn_name = 'slack_default'[source]
conn_type = 'slackwebhook'[source]
hook_name = 'Slack 传入 Webhook'[source]
client()[source]

获取基础的 slack_sdk.webhook.WebhookClient (已缓存)。

get_conn()[source]

获取基础的 slack_sdk.webhook.WebhookClient (已缓存)。

send_dict(body, *, headers=None)[source]

使用给定的 JSON 数据块执行 Slack 传入 Webhook 请求。

参数
  • body (dict[str, Any] | str) – JSON 数据结构,预期为 dict 或 JSON 字符串。

  • headers (dict[str, str] | None) – 此请求的请求标头。

send(*, text=None, blocks=None, response_type=None, replace_original=None, delete_original=None, unfurl_links=None, unfurl_media=None, headers=None, attachments=None, **kwargs)[source]

使用给定的参数执行 Slack 传入 Webhook 请求。

参数
  • text (str | None) – 文本消息(即使有块,也建议同时设置此项,因为它可以用作回退)。

  • blocks (list[dict[str, Any]] | None) – Block Kit UI 组件的集合。

  • response_type (str | None) – 消息的类型(‘in_channel’ 或 ‘ephemeral’)。

  • replace_original (bool | None) – 如果您将此选项用于 response_url 请求,则为 True。

  • delete_original (bool | None) – 如果您将此选项用于 response_url 请求,则为 True。

  • unfurl_links (bool | None) – 指示是否应展开文本 URL 的选项。

  • unfurl_media (bool | None) – 指示是否应展开媒体 URL 的选项。

  • headers (dict[str, str] | None) – 此请求的请求标头。

  • attachments (list[dict[str, Any]] | None) – (旧版) 附件的集合。

send_text(text, *, unfurl_links=None, unfurl_media=None, headers=None)[源代码]

使用给定的文本执行 Slack Incoming Webhook 请求。

参数
  • text (str) – 文本消息。

  • unfurl_links (bool | None) – 指示是否应展开文本 URL 的选项。

  • unfurl_media (bool | None) – 指示是否应展开媒体 URL 的选项。

  • headers (dict[str, str] | None) – 此请求的请求标头。

classmethod get_connection_form_widgets()[源代码]

返回要为 hook 添加的小部件字典,以处理额外的值。

classmethod get_ui_field_behaviour()[源代码]

返回自定义字段行为。

此条目是否有帮助?