我创建了一个服务帐户,获得了json配置文件,并使用它请求访问令牌。响应没问题,我收到令牌。当我使用它上传文件时一切正常,但是当我尝试从文件夹中查看文件时,它会返回错误消息
超出未经身份验证的使用的每日限制。继续使用需要注册。
我的服务帐户只需要访问自己的文件,它不会访问任何其他用户的文件。我查看文件的代码(现在我尝试调试响应):
public List<String> getFilesList() {
Http http = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint('https://www.googleapis.com/drive/v2/files?accessToken='+accessToken');
HttpResponse resp = http.send(req);
System.debug(resp);
System.debug(resp.getBody());
return null;
}
对于错误Daily Limit for Unauthenticated Use Exceeded. Continued use requires sign,请尝试在API下检查您的Google开发者控制台,这是与API密钥相关联的项目。示例:https://console.developers.google.com/project/<your app id>/apiui/api
。确保Google + API的状态设置为“开”。
基于此SO question,该错误意味着您尚未设置Google API控制台项目。
- 创建一个Google APIs Console project
- 在Services pane上,启用项目所需的所有API。
- 在API Access pane上,单击“创建OAuth 2.0客户端ID”。将打开一个对话框填写您项目的信息。点击下一步
- 选择适当的应用程序类型。根据您在此帖子中使用的标签,我猜这是一个iOS项目,因此请选择已安装的应用程序。
- 输入您的包ID。在您的应用程序列在那里之前,您无需输入App Store ID。
- 单击“创建客户端ID”
您将看到客户端ID和客户端密钥值。您将使用这些值来启用与项目和Google API的通信。
如果您还没有使用它,请参阅Google+ iOS SDK and documentation进行全面浏览。称为“写时刻”的任务在实现中类似,并演示了如何在使用SDK的iOS项目中连接和使用Google+ REST API。
您需要指定plus.me的范围以获取配置文件信息。
希望这可以帮助!
我发现了什么问题。我在url地址而不是标题中发送访问令牌。最终我这样做了:
public List<String> getFilesList() {
Http http = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint('https://www.googleapis.com/drive/v2/files);
req.setHeader('Authorization', 'Bearer '+accessToken);
HttpResponse resp = http.send(req);
return null;
}