通过选择器的Google云端硬盘文件下载始终返回找不到的文件

时间:2013-10-02 15:53:46

标签: javascript php google-drive-api google-drive-realtime-api

我现在花了好几个小时完成这项工作,而我的文档已经用完,无法阅读如何让这么简单的过程正常工作。这是我理想的情况。

我有一个谷歌驱动器选择器的javascript版本(我也花了几个小时才终于找到了我想谷歌称为Google Picker API的东西)。一旦我找到它,它就像一个魅力和我曾经希望的一切。 (有点)。我需要做的是选择器返回file_id(它做)然后我在php脚本中使用该文件ID通过wget调用获取文件然后我将文件保存在我的服务器上。我无法得到正确的卷曲请求所以我使用googles php库,我宁愿不使用它,但无论如何都会使它工作。

我非常大的问题是我已经尝试过javascript api和php api甚至google自己的资源管理器api,我在我尝试过的几个不同的google驱动器帐户中选择的任何文件上都找不到文件错误。我已经能够修复无数的描述性(或缺少)错误,我终于解决了这个错误,我无法通过。 javascript api返回错误400“必需值:id”,即使我知道值正在填充正确。 php库返回错误404:File Not Found

我已启用并运行Google Drive API。我启用了Google云端硬盘SDK,但似乎运行正常。我在其他地方读过这可能是文件权限错误,但如果问题就解决这个问题我没有指示。

为了记录,我还必须进行Dropbox集成,从开始到结束的整个集成不到30分钟。

修改

万一我的api键丢失了(有太多的东西),对于选择器,我需要从Google Cloud界面中获取以下内容。 .setDeveloperKey是浏览器密钥API密钥,.setAppId是Oauth 2.0客户端ID。

当我设置php库并构建客户端时,$ client-> setClientId()是我的Oauth 2.0客户端ID和$ client-> setDeveloperKey()是我的服务器密钥API密钥正确吗?

2 个答案:

答案 0 :(得分:1)

就我而言,结果是范围问题。当我使用'https://www.googleapis.com/auth/drive.file'时,我为任何文件获得了404。但是,当我使用'https://www.googleapis.com/auth/drive.readonly'时,我可以获取元数据和exportLink以下载文件内容等。

https://developers.google.com/drive/web/scopes,'文件'范围允许访问由应用创建或打开的文件,而“只读”'范围没有这个约束。

答案 1 :(得分:0)

您需要代表用户授权和验证您的请求,密钥和您的客户端ID不足以访问用户的非公开文档。在https://developers.google.com/drive/quickstart-php

上解释了Auth for PHP