我创建了 slack 机器人,有没有可能以文件形式发送回复消息? (我需要根据输入发送一些文件作为回复消息)。我尝试使用 api file.upload 将文件设置为私有,无法使用 url 访问,但如果我使用 sampe api 上传到频道,文件是公共的,有什么方法可以通过机器人以文件形式发送直接消息)
是的。您可以通过在直接消息通道中与用户共享文件来直接与用户私下共享文件。
只需将要与其共享文件的用户的
{user-id}
放入 files.uploadAPI 方法的
channels
参数中即可完成设置。
您的 Slack 应用程序将需要
files:write:user
范围。这也适用于机器人。
具有 ID
U12345678
的用户示例:
curl -F content="Hello" -F channels=U12345678 -F token=xoxp-your-token-here https://slack.com/api/files.upload
根据 https://api.slack.com/methods/files.upload#markdown,
files.upload
方法已弃用,并将于 2025 年 3 月 11 日停止运行。您需要使用较新的方法:
file.completeUploadExternal(https://api.slack.com/methods/files.completeUploadExternal#args)的参数似乎不支持在DM中共享,仅在频道中或作为对通过时间戳现有消息。
文件上传后,您会在响应数据中看到该文件的
permalink
,随后您可以使用 Slack 机器人 DM 给您需要的任何人