使用Javascript中的Google Drive API

时间:2017-11-07 09:39:18

标签: javascript google-drive-api google-developers-console

我想以一种可以将文件保存到Google云端硬盘的方式扩展项目。要了解其工作原理,我尝试了文档中的快速入门示例:https://developers.google.com/drive/v3/web/quickstart/js

根据示例,我注意到该示例是在开发人员控制台中创建 API密钥。执行相同的步骤只会返回客户端密钥。我怀疑这是一个命名问题,并希望两者是相同的。

不幸的是,示例代码不起作用,但记录以下错误:

{"error":{"errors":[{"domain":"usageLimits","reason":"keyInvalid","message":"Bad Request"}],"code":400,"message":"Bad Request"}}

在请求中:

https://content.googleapis.com/discovery/v1/apis/drive/v3/rest?pp=0&fields=kind%2Cname%2Cversion%2CrootUrl%2CservicePath%2Cresources%2Cparameters%2Cmethods%2CbatchPath%2Cid&key=[[my key]]

我检查了请求网址中是否显示了正确的密码。将var API_KEY = '<YOUR_API_KEY>';设置为空字符串是一种解决方法。

如何进一步调试?我在哪里获得正确的api密钥?

2 个答案:

答案 0 :(得分:1)

我最近遇到了这个错误。可以肯定的是,Google 文档通常非常好,但在这种情况下,Google Drive API (https://developers.google.com/drive/api/v3/quickstart/js) 并不是那么清楚。特别是对于此 API,您将需要两个凭据。

在您的项目凭据部分,您必须为 Web 应用程序创建一个 OAuth 2.0 客户端和一个 API Key

(抱歉截图中的西班牙语)

关于 OAuth 2.0 客户端,并非我将其限制为 http://localhost OAuth 2.0 configuration Google Drive API

关于 API Key请注意,我已将其限制为我的 Google Drive API API Key configuration Google Drive API

然后,在文档提供的 index.html 中,您可以将您的 CLIENT_ID 设置为在 OAuth 2.0 客户端生成中获得的,并将 API_KEY 设置为一个在 API Key 过程中生成的。

答案 1 :(得分:0)

  

{&#34;错误&#34; {&#34;错误&#34;:[{&#34;结构域&#34;:&#34; usageLimits&#34;&#34;理由&#34 ;:&#34; keyInvalid&#34;,&#34; message&#34;:&#34; Bad Request&#34;}],&#34; code&#34;:400,&#34; message&#34 ;:&#34;错误请求&#34;}}

表示您所做的请求未经过适当的身份验证。

API密钥用于访问公共数据。 Oauth2客户端ID和密码将用于访问file.list所属的私有用户数据。所以我不认为这是一个命名问题。您的代码应该弹出,请求用户访问。