Python Slack API 下载二进制文件返回 html

问题描述 投票:0回答:1

我可以通过 python Slack API 将文件上传到 Slack 通道。我无法下载

message['files'][0]['url_private_download']
中所示网址的二进制文件。

相反,使用

requests.get
wget -mO <file-name> <url>
curl <url> --output <file-name>
时,我获得了 40KB 的 HTML。

奇怪的是,我可以在 Chrome 浏览器中输入相同的网址并下载二进制文件。

看起来好像有什么事情在幕后发生。我不确定如何最好地解决这个问题。

建议?

python download slack-api
1个回答
1
投票

当 HTTP 客户端检索文件时,它需要以与 API 类似的方式提供其凭据。如果您的令牌具有正确的权限,HTTP 请求将响应文件内容。

在curl请求中,您通常会使用像

-H "Authorization: Bearer xoxb-xxxxxxxxx-xxxx"
这样的参数将机器人令牌作为不记名令牌呈现。在这种情况下,特别需要基于标头的身份验证。

该请求在您的浏览器中有效,因为会话和 cookie 携带有关用户和您正在交互的工作区的授权信息。

© www.soinside.com 2019 - 2024. All rights reserved.