airflow.providers.slack.hooks.slack¶
类¶
表示文件上传数据的结构。 |
|
创建一个用于调用的 Slack API 连接。 |
模块内容¶
- class airflow.providers.slack.hooks.slack.FileUploadTypeDef[source]¶
基类:
TypedDict
表示文件上传数据的结构。
- 变量:
file – 可选。需要发送的文件的路径。
content – 可选。文件内容。如果省略此参数,则必须提供一个文件。
filename – 可选。显示的文件名。
title – 可选。上传文件的标题。
alt_txt – 可选。供屏幕阅读器使用的图片描述。
snippet_type – 可选。正在上传的代码片段的语法类型。
- class airflow.providers.slack.hooks.slack.SlackHook(*, slack_conn_id=default_conn_name, base_url=None, timeout=None, proxy=None, retry_handlers=None, **extra_client_args)[source]¶
基类:
airflow.hooks.base.BaseHook
创建一个用于调用的 Slack API 连接。
此类提供了围绕
slack_sdk.WebClient
的轻量级封装。警告
此 Hook 旨在用于 Slack API 连接,可能无法与 Slack Incoming Webhook 和 HTTP 连接正常工作。
- 示例
# Create hook slack_hook = SlackHook(slack_conn_id="slack_api_default") # Call generic API with parameters (errors are handled by hook) # For more details check https://api.slack.com/methods/chat.postMessage slack_hook.call("chat.postMessage", json={"channel": "#random", "text": "Hello world!"}) # Call method from Slack SDK (you have to handle errors yourself) # For more details check https://slack.dev/python-slack-sdk/web/index.html#messaging slack_hook.client.chat_postMessage(channel="#random", text="Hello world!")
未列入
slack.WebClient
构造函数其余参数中的额外参数。- 参数:
slack_conn_id (str) – Slack 连接 ID,其密码字段中包含 Slack API 令牌。
timeout (int | None) – 客户端等待连接并接收 Slack 响应的最长秒数。如果未设置,将使用 WebClient 的默认值。
base_url (str | None) – 表示 Slack API 基础 URL 的字符串。如果未设置,将使用默认的 WebClient BASE_URL (
https://www.slack.com/api/
)。proxy (str | None) – 用于进行 Slack API 调用的代理。
retry_handlers (list[slack_sdk.http_retry.RetryHandler] | None) – 用于自定义
slack_sdk.WebClient
中重试逻辑的处理程序列表。
- call(api_method, **kwargs)[source]¶
使用给定参数调用 Slack WebClient 的 WebClient.api_call 方法。
- 参数:
api_method (str) – 目标 Slack API 方法。例如 'chat.postMessage'。必需。
http_verb – HTTP 动词。可选(默认为 'POST')
files – 需要分块上传的文件。例如 {imageORfile: file_objectORfile_path}
data – 需要附加到请求体的数据。如果提供字典,将进行表单编码。可选。
params – 需要附加到 URL 的 URL 参数。可选。
json – 需要附加到请求体的 JSON 数据。可选。
- 返回:
服务器对 HTTP 请求的响应。可以通过类似字典的方式访问响应中的数据。如果响应包含 'next_cursor',则可以对其进行迭代以执行后续请求。
- 返回类型:
slack_sdk.web.slack_response.SlackResponse
- send_file_v2(*, channel_id=None, file_uploads, initial_comment=None)[source]¶
使用 Slack SDK 客户端方法 files_upload_v2 向 Slack 频道发送一个或多个文件。
- 参数:
channel_id (str | None) – 需要发送文件到的频道 ID。如果省略此参数,文件将发送到工作区。
file_uploads (FileUploadTypeDef | list[FileUploadTypeDef]) – 需要上传的文件规范。
initial_comment (str | None) – 在指定
channel
中介绍文件的消息文本。
- send_file_v1_to_v2(*, channels=None, file=None, content=None, filename=None, initial_comment=None, title=None, snippet_type=None, **kwargs)[source]¶
在
send_file
和send_file_v2
方法之间平滑过渡。- 参数:
channels (str | collections.abc.Sequence[str] | None) – 文件将被分享到的频道名称或 ID 的逗号分隔列表。如果省略此参数,文件将发送到工作区。文件将为每个频道单独上传。
file (str | pathlib.Path | None) – 需要发送的文件的路径。
content (str | None) – 文件内容。如果省略此参数,则必须提供一个文件。
filename (str | None) – 显示的文件名。
initial_comment (str | None) – 在指定
channels
中介绍文件的消息文本。title (str | None) – 文件标题。
snippet_type (str | None) – 正在上传的内容的语法类型。