我正在尝试构建一个网页,用户可以在该网页上使用 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。
如果您想手动执行此操作,步骤是:-
您可以点击 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/