Slack API 操作符¶
SlackAPIPostOperator¶
使用 SlackAPIPostOperator
向 Slack 频道发布消息。
使用操作符¶
您可以发送简单的文本消息
slack_operator_post_text = SlackAPIPostOperator(
task_id="slack_post_text",
channel=SLACK_CHANNEL,
text=(
"Apache Airflow® is an open-source platform for developing, "
"scheduling, and monitoring batch-oriented workflows."
),
)
或者您可以使用 Block Kit 来创建应用程序布局
slack_operator_post_blocks = SlackAPIPostOperator(
task_id="slack_post_blocks",
channel=SLACK_CHANNEL,
blocks=[
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": (
"*<https://github.com/apache/airflow|Apache Airflow®>* "
"is an open-source platform for developing, scheduling, "
"and monitoring batch-oriented workflows."
),
},
"accessory": {"type": "image", "image_url": IMAGE_URL, "alt_text": "Pinwheel"},
}
],
text="Fallback message",
)
SlackAPIFileOperator¶
使用 SlackAPIFileOperator
向 Slack 频道发送文件。
使用操作符¶
注意
操作符支持两种上传文件的方法,通过 method_version
控制。默认情况下,它使用 Slack SDK 方法 upload_files_v2
。可以通过将 method_version
设置为 v1
来使用传统的 upload_files
方法。但是,不建议这样做,因为它可能会影响性能,导致随机 API 错误,并且将于 2025 年 3 月 11 日停用。此外,从 2024 年 5 月 8 日开始,新创建的应用程序将无法使用此 API 方法。
如果您之前使用过 v1
,则应检查您的应用程序是否具有适当的范围
files:write - 用于写入文件。
files:read - 用于读取文件(如果您使用 Slack SDK >= 3.23.0,则不需要)。
channels:read - 获取公共频道列表,用于将频道名称转换为频道 ID。
groups:read - 获取私有频道列表,用于将频道名称转换为频道 ID。
mpim:read - API 方法 conversations.list 的附加权限
im:read - API 方法 conversations.list 的附加权限
您可以通过指定文件路径来发送文件附件
slack_operator_file = SlackAPIFileOperator(
task_id="slack_file_upload_1",
channels=SLACK_CHANNEL,
filename="/files/dags/test.txt",
filetype="txt",
)
或者直接提供文件内容
slack_operator_file_content = SlackAPIFileOperator(
task_id="slack_file_upload_2",
channels=SLACK_CHANNEL,
content="file content in txt",
)