我可以通过Python Slack API将文件上传到Slack通道。我无法使用message['files'][0]['url_private_download']
中指示的URL下载二进制文件。
相反,当使用requests.get
、wget -mO <file-name> <url>
和curl <url> --output <file-name>
时,我得到了40KB的HTML。
奇怪的是,我可以在Chrome浏览器中输入相同的URL,然后下载二进制文件。
似乎有什么事情正在幕后进行。我不知道该怎么做。
有什么建议?
1条答案
按热度按时间okxuctiv1#
当HTTP客户端检索文件时,它需要以类似的方式向API提供其凭证。如果您的令牌具有正确的权限,则HTTP请求将使用文件内容进行响应。
在curl请求中,您通常会使用像
-H "Authorization: Bearer xoxb-xxxxxxxxx-xxxx"
这样的参数将bot令牌作为bearer令牌呈现。在此上下文中特别需要基于头的身份验证。由于会话和Cookie携带有关用户和您正在交互的工作区的授权信息,因此请求在您的浏览器中工作。