是否可以将文件上传到某个频道而不使用 Slack API 将其发布为消息?
Is it possible to upload a file to some channel without publishing it as a message using Slack API?
我正在尝试使用 Slack API 中的 files.upload
。
with open("test.txt", "rb") as file:
files = {"file": ("test.txt", file, "text")}
payload = {
"title": filename,
"filename": filename,
"token": slack_token_bot,
"channels": [slack_channel],
}
res = requests.post(
"https://slack.com/api/files.upload",
params=payload,
files=files,
timeout=30,
)
它工作正常,但它会立即在相应的频道中发布消息。我想避免这种情况:我只需要上传文件的 url,这样我以后就可以将包含 link 的自定义消息格式化为 Block elements.
是否可以在不创建消息的情况下上传到频道?
我也考虑过使用空 "channels"
并稍后分享,但它不会很容易工作:
实际上,如果 "channels"
为空,我什至无法使用请求返回的任何 url 来查看文件(我猜这是因为该文件属于机器人而不是用户,因此在发布到频道之前它是私有的。
不幸的是,如果不在 public 频道中共享文件,就无法完成您想要的。也许创建一个仅供您上传文件的 public 频道?不理想,但如果您是该频道的唯一成员,它至少会减少较大 public 频道中不需要的噪音,您仍然可以将自定义消息发送到您需要的频道。
我正在尝试使用 Slack API 中的 files.upload
。
with open("test.txt", "rb") as file:
files = {"file": ("test.txt", file, "text")}
payload = {
"title": filename,
"filename": filename,
"token": slack_token_bot,
"channels": [slack_channel],
}
res = requests.post(
"https://slack.com/api/files.upload",
params=payload,
files=files,
timeout=30,
)
它工作正常,但它会立即在相应的频道中发布消息。我想避免这种情况:我只需要上传文件的 url,这样我以后就可以将包含 link 的自定义消息格式化为 Block elements.
是否可以在不创建消息的情况下上传到频道?
我也考虑过使用空 "channels"
并稍后分享,但它不会很容易工作:
实际上,如果 "channels"
为空,我什至无法使用请求返回的任何 url 来查看文件(我猜这是因为该文件属于机器人而不是用户,因此在发布到频道之前它是私有的。
不幸的是,如果不在 public 频道中共享文件,就无法完成您想要的。也许创建一个仅供您上传文件的 public 频道?不理想,但如果您是该频道的唯一成员,它至少会减少较大 public 频道中不需要的噪音,您仍然可以将自定义消息发送到您需要的频道。