【问题标题】:Google Drive API - download file issue (javascript, php)Google Drive API - 下载文件问题(javascript、php)
【发布时间】:2017-11-02 14:53:58
【问题描述】:

我正在尝试将文件从 Google 云端硬盘下载到我的硬盘。整个身份验证是在 JavaScript 中完成的,我收到了来自服务器的响应:

请求 = gapi.client.drive.files.get({'fileId': id}); request.execute(function(resp) { ........ }

我有正确的范围以便被允许下载文件:

https://www.googleapis.com/auth/drive

上面的请求也返回了一个downloadUrl。

我正在尝试将 downloadUrl 发送到 PHP,但下载过程失败并出现 401 错误。

有什么建议吗?我曾尝试直接用 Javascript 下载文件,但我还没有找到好的解决方案。

谢谢,如果您有任何问题,请告诉我。 这是我的第一个问题,因为这个问题要了我的命:D

【问题讨论】:

  • 你能发布确切的 401 错误吗?我的猜测是你的 php 脚本无权下载它从 JavaScript 发送访问令牌。 developers.google.com/drive/v3/web/manage-downloads
  • @DaImTo 是的,这就是问题所在。但我不知道如何从 JS 发送访问令牌,如果我在 PHP 上进行新的身份验证,我会收到:

    Type: Google_Service_Exception

    Message: Error calling GET @987654323 @: (403) 已超出未经验证使用的每日限制。继续使用需要注册。

    - 以前从未遇到过此问题。

标签: javascript php google-drive-api


【解决方案1】:

这是公共文件还是私人文件?您是否在 PHP 中向 GDrive 发送了正确的身份验证令牌?除了 401 之外是否还有其他警告/错误?

GDrive API 的 401 表示您提供的凭据无效。您不能在 PHP 中提供正确的身份验证,或者至少不能提供与 JS 相同的身份验证。

【讨论】:

  • 这是我尝试在 downloadUrl 上获取 file_get_content 时遇到的错误:HTTP 请求失败! HTTP/1.0 401 未授权
  • 该文件是私有文件,但我对公共文件也有同样的问题。
  • 一旦您获得下载 url,您仍然需要将您的身份验证令牌传递给它以下载它。您仍然需要在 PHP 中设置授权标头。
  • 我应该如何传递该令牌?我很确定这是问题所在,现在在您向我提供这些详细信息之后。谢谢。
  • 你能发布你正在使用的 PHP 代码吗?老实说,通过 GDrive 官方 PHP api developers.google.com/drive/v3/web/quickstart/php 可能更容易
【解决方案2】:

感谢大家的帮助。这个话题对我帮助很大: Newbie Google Drive API (PHP) confusion - what guide/library to use?

问题确实是 PHP 中的 auth,或者更好的是,缺少它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多