我有一个 Teams Bot,我正在尝试下载用户在私人对话中附加的文件。我看到消息中的附件,如下所示:
contentURl: https://mycompany.sharepoint.com/personal/my_user/Documents/Microsoft Teams Chat Files/test 13.txt
content:
downloadUrl: download -> https://mycompany-my.sharepoint.com/personal/my_user/_layouts/15/download.aspx?UniqueId=3c4dca93-3f06-4a0d-9675-61d50155582d&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTB...mUxZS
我缩短了上面示例中
downloadUrl
的中间部分。
我读到,我可以直接使用 downloadUrl 的
download
链接(其中包含 tempauth
令牌)来访问该文件几分钟。
我的问题是,即使我在消息发送后几秒钟尝试下载,也无法使用
downloadUrl
下载附件。在curl或postman中使用简单的GET我得到401{"error_description":"Unsupported security token."}
响应。当我将链接复制并粘贴到浏览器中时,我得到 Token contains invalid signature.
响应。
我做错了什么吗?非常感谢任何帮助。
我们尝试了与您提到的相同的步骤,但得到了相同的错误:“令牌包含无效签名。”
我们观察到,即使令牌有效,它也不起作用,因为我们只能以流格式接收下载文件 URL 数据,而 Postman 或浏览器实际上不支持这种格式。
因此,我们尝试调试示例代码,效果很好。 const response = wait axios({ method: 'GET', url: downloadUrl, responseType: 'stream' });