Google Drive API downloadUrl不起作用

Sea*_*sey 5 google-drive-api

  • 我在Google云端硬盘上有一些录音
  • 这些文件“具有链接的任何人都可以查看”
  • 我创建了一个链接到这些文件的播客供稿

为了使播客客户端下载文件,它需要一个直接下载链接。Google Drive API在文件的元数据中返回两个可以起到此作用的字段:

  • webContentLink适用于浏览器。它允许我的播客客户端下载小于25MB的文件;不幸的是,由于未对文件进行病毒扫描,因此Google要求用户确认超过此数量的文件。如果文件超过25MB,此用户确认步骤将阻止我的播客客户端下载文件。
  • downloadUrl是您应该使用的功能,但我根本无法使用它。如果我downloadUrl直接将a复制并粘贴到浏览器的地址栏中,则一无所获。同样,我的播客客户端无法通过downloadUrl下载任何内容。

这个问题似乎尚未解决,表明这个问题仍然存在,但是我有几个问题:

  • 我需要在带有downloadUrl请求的情况下提交API密钥吗?webContentLink不需要任何密钥。
  • 有没有解决此问题的方法?

sup*_*san 1

使用 downloadUrl 请求文件时,您必须在请求标头中指定以下授权:

"Authorization: Bearer $token"
Run Code Online (Sandbox Code Playgroud)

gapi其中 $token 是为用户返回的 access_token,如下所示:

gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token;
Run Code Online (Sandbox Code Playgroud)

因此,如果您使用curl,请求将是这样的:

curl -o download -H "Authorization: Bearer $token" $downloadUrl 
Run Code Online (Sandbox Code Playgroud)