我正在尝试将图像上传到 slack 并将其发布到特定频道的 slack 消息的图像块中。
files.sharedPublicURLpublic_url_shared是true.permalink_public我收到的上传图像来创建松弛消息(图像块)。为了调试,我使用 Slack 的 Block Kit Build。我image_url将块套件演示示例中的 URL 替换为我从 slack 收到的 URL :
https://slack-files.com/T04AG7BVD-FLWHBHY86-1ba8263c00
Run Code Online (Sandbox Code Playgroud)
或者:
https://slack-files.com/T04AG7BVD-FLNJJURL1-7b17f26c80
Run Code Online (Sandbox Code Playgroud)
应该显示图像。相反,Slack 的 Block Kit Builder 中存在错误以及直接的 slack-api 调用:Downloading image failed.
如果我permalink_public在隐身会话中打开。我可以看到文件。所以它是公开的。
的链接permalink_public在您的布局块中不起作用的原因是它链接到显示图像的公共网站,但不是图像文件的直接链接(这当然是您需要的)。
但是您可以构建从链接到网站的直接图像链接。
您从中获得的网站链接permalink_public具有以下格式:
https://slack-files.com/{team_id}-{file_id}-{pub_secret}
Run Code Online (Sandbox Code Playgroud)
图像的直接链接格式为:
https://files.slack.com/files-pri/{team_id}-{file_id}/{filename}?pub_secret={pub_secret}
Run Code Online (Sandbox Code Playgroud)
因此,您只需要提取pub_secretfrompermalink_public并且您应该能够构建到图像的直接链接。您可以从文件对象中获取的其他参数。
您的图像示例:
https://files.slack.com/files-pri/T04AG7BVD-FLWHBHY86/no_image_found.png?pub_secret=1ba8263c00
Run Code Online (Sandbox Code Playgroud)
请注意,这似乎不是记录在案的方法,因此所有未记录的方法和黑客都可能会发生变化。