2

我想使用 Blogger API 将帖子添加到我的博客。我成功获得了使用 Blogger API 的权利,并在 Google API 控制台中激活了它们。我使用教程来获取 access_token。我发现了这个问题,所以在请求之前我获得了新的 request_token。

当我第一次请求添加帖子时,我收到了错误:401 "message": "Invalid Credentials", "location": "Authorization"

当我第二次请求使用新令牌添加帖子时,出现错误:403“消息”:“超出每日限制。请注册”

我的请求代码是:

final JSONObject obj = new JSONObject();
obj.put("id", mUserID);

final JSONObject requestBody = new JSONObject();
requestBody.put("kind", "blogger#post");
requestBody.put("blog", obj);
requestBody.put("title", msg[0]);
requestBody.put("content", msg[0] + " " + msg[1]);

final HttpPost request = new HttpPost("https://www.googleapis.com/blogger/v3/blogs/" +   mUserID + "/posts");
request.addHeader("Authorization", "Bearer " + mToken);
request.addHeader("Content-Type", "application/json");
request.setEntity(new StringEntity(requestBody.toString()));
final HttpResponse response = mHttpClient.execute(request);

final HttpEntity ent = response.getEntity();
Log.i(SocialPoster.LOG, EntityUtils.toString(ent));
ent.consumeContent();

UPDATE 找到解决方案:只需在请求的 URL 中添加“?key={MY_API_KEY}”即可解决问题

4

1 回答 1

3

您链接的教程网站状态

“API Key 是强制性的,因为它标识了您的应用程序,因此允许 API 扣除配额并使用为您的项目定义的配额规则。您需要在 Tasks 服务对象上指定 API Key。”

useTasksAPI(String accessToken) {
  // Setting up the Tasks API Service
  HttpTransport transport = AndroidHttp.newCompatibleTransport();
  AccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(accessToken);
  Tasks service = new Tasks(transport, accessProtectedResource, new JacksonFactory());
  service.accessKey = INSERT_YOUR_API_KEY;
  service.setApplicationName("Google-TasksSample/1.0");

  // TODO: now use the service to query the Tasks API
}

在我看来,您缺少 API 密钥、错误地使用它、将其错误地放置在代码中或以错误的方式将其提供给服务。

我没有查看这里的代码,但这是 Google 的示例代码,用于您尝试执行的操作。使用此代码测试您的 API 密钥。

于 2012-08-14T08:35:49.400 回答