php - 从 cURL 下载 OneDrive 文件,因为他们更改了 URL 的结构

标签 php curl download onedrive

这是我遇到的问题。在 OneDrive 更改 url 之前,很容易强制从 cURL 下载文件,但是现在由于他们更改了 URL 的结构,我不能使用以前的方法来替换 redir?带下载?。这就是它们过去的构造方式:

https://onedrive.live.com/redir?resid=

为了让它立即开始下载,我们只需要像这样用下载替换 redir
https://onedrive.live.com/download?resid=

那是完全修复它,但现在网址是这样的:
https://1drv.ms/u/s!AsdMSpdm_dmsadMSda

所以,我的问题是如何从 cURL 下载文件,即使使用 CURLOPT_FOLLOWLOCATION 我也不能这样做,它只有在强制下载文件时才有效。
提前致谢!

最佳答案

有两种选择。执行此操作的“正确”方法是按照此处描述的详细信息对完整共享 URL 进行编码 https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/shares_get?view=odsp-graph-online#encoding-sharing-urls然后构造一个像这样的 URL:https://api.onedrive.com/v1.0/shares/{encodedUrl}/root/content这将在 URL 处下载共享文件的内容。选项#2是将URL拼接起来,抓取以s!开头的路径段并在与编码的 Url 相同的位置使用它:https://api.onedrive.com/v1.0/shares/s!.../root/content无论哪种方式,您都可以使用 cURL 下载文件的内容。

关于php - 从 cURL 下载 OneDrive 文件,因为他们更改了 URL 的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37857098/

相关文章:

php - 提交时将输入值保存到文本文件吗?

php - 使用php5在mysql中注册用户帐户

php - Yoast 字段未显示在自定义帖子类型上

php - 在 PHP 中检测 cURL 超时

curl - 如何启动 Mintty 并运行脚本文件?

iphone - Objective - C 从网络下载图片问题

javascript - 如果有条件,Jquery 不会跳过 PHP

TLS 握手中的curl NSS -12286 错误

http - 一次下载多个文件

php - 使用浏览器提示下载文件