google-drive-api - 使用 Google Picker 从 Google Drive 下载文件

标签 google-drive-api google-api-php-client google-picker

我正在尝试构建一个网页,用户可以在该网页上使用 Google Picker 从 Google Drive 中选择图像,并使用 PHP 脚本将所选文件下载到我的服务器。

我已经设法设置了 Picker,并且获得了文件 ID,但是当我将此 ID 传递给我的后端并尝试使用 GET 方法时,我收到了身份验证错误。

我已经花了 2 天的时间来研究这个问题,但是我阅读谷歌官方文档的次数越多,我就越困惑。

有人可以告诉我,或者链接我如何实现这个例子吗?是否有可能以某种方式将 oAuthv2 token 从 GooglePicker 传递到我的 PHP 后端,然后在 GET 请求中使用该 token ?

非常感谢您提前!

编辑:

这是我尝试 GET https://www.googleapis.com/drive/v2/files/SOME_FILE_ID 时遇到的错误

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }

最佳答案

在调用 GET 之前,您必须设置一个包含最新访问 token 的 Authorisation-Header。

如果您想手动执行此操作,步骤是:-

  • 使用您的 app-id/client-id 和范围请求权限。这将返回给您一个授权码。
  • 使用授权码请求刷新 token 和访问 token
  • 存储刷新 token 以备将来使用
  • 在 http 头授权中设置访问 token (类似于授权:Bearer ya29.AHES6ZR3HQa9trJM_IQcgNlM0SI4FvLQFiQfcAZCWLobfpjqtGlT6A)
  • 发出您的 GET

  • 您可以点击 https://developers.google.com/oauthplayground/ 查看整个过程。

    或者,如果您的客户端应用程序已经有一个访问 token ,您可以将它与文件 ID 一起发送到您的服务器,您的服务器可以简单地将其直接设置到 Authorization header 中。

    您可以改用 PHP 库,例如。转至 https://developers.google.com/drive/v2/reference/files/insert并向下滚动以查看 PHP 示例。无论您是手动构建 URL 还是使用库,这完全是您的选择。库的最大缺点是,如果出现问题,您确实需要了解并跟踪 http 以查看发生了什么,因此不妨从第一天开始学习并爱上它们。

    消息“已超出未经身份验证的使用的每日限制”似乎让初学者(包括我在内)感到困惑。 “未经身份验证的使用”是重要的部分,这意味着您尚未设置 Authorization header 。 Google API 对未经授权的使用(例如 URL 缩短器之类的东西)有每日配额。在 Drive 的情况下,该配额为零,因此出现错误。

    关于google-drive-api - 使用 Google Picker 从 Google Drive 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18558604/

    相关文章:

    php - Google Analytics PHP API - 获取用户电子邮件

    php - Google_Activity 必须是 Google_ActivityObject 的实例

    google-picker - 将 drive.file OAuth 范围与 Google 文件选择器一起使用时无法获取图像缩略图

    javascript - Google Drive Picker API 的 Polymer HTML5 Web 组件 - 目标来源错误

    google-picker - Google Picker - Alert - 您将要向 localhost 发送 1 个项目。你想继续吗?

    android - 如何在电子表格中获取应用程序脚本的 ID

    android - 如何将客户端 ID 添加到 Google Drive Client API for Java

    php - 通过 google php client api v3 将大视频发布到 youtube

    google-api - 如何在 Drive API 中获取 google doc 修订的详细列表

    android - 从服务启动 Activity 并等待结果