2

Blogger API を使用してブログに投稿を追加したいと考えています。Blogger API の使用権を取得し、Google API コンソールで有効化しました。このチュートリアルを使用してaccess_token を取得しました。この質問を見つけたので、リクエストする前に新しい request_token を取得します。

投稿を追加する最初のリクエストを行うと、エラーが発生しました: 401 "message": "Invalid Credentials", "location": "Authorization"

新しいトークンで投稿を追加するための 2 回目のリクエストを行うと、エラーが発生しました: 403 "メッセージ": "1 日の制限を超えました。サインアップしてください"

私のリクエストのコードは次のとおりです。

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キーはアプリケーションを識別するため必須であり、APIがクォータを差し引き、プロジェクトに定義されたクォータルールを使用できるようにします。タスクサービスオブジェクトでAPIキーを指定する必要があります。」

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 に答える