0

主にいくつかのアクティビティを読み取るために、Google+ API に対して読み取り専用のリクエストを実行しようとしています。これはサーバーのみのアプリケーションであり、ブラウザーやクライアントとの対話はありません。

私は Google API がサポートするさまざまな種類の認証を読んでおり、私のユースケースがサービス アカウントのシナリオに対応していることは比較的確信しています

これで、(Google API コンソールで) 新しいアプリケーションを作成し、サービス アカウントの資格情報を作成して、通常はサンプルの指示に従いました。しかし、私は得ています:

400 Bad Request
{
  "error" : "invalid_grant"
}

私が何を間違っているのかわかりません - どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

1

サービス アカウント サンプルで「invalid_grant」エラーが発生する最も一般的な方法は、登録済みの電子メール アドレスをコードに挿入するのを忘れていることです。

https://developers.google.com/consoleにアクセスしてから API Access に移動し、サービス アカウントを登録した場所を確認します。

次のようなラベルの付いたフィールドが表示されます。

Email address: XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXX@developer.gserviceaccount.com

この値をコピーして挿入する必要があります

plus-serviceaccount-cmdline-sample/src/main/java/com/google/api/services/samples/plus/serviceaccount/cmdline/PlusServiceAccountSample.java

次のように行で:

/** E-mail address of the service account. */
private static final String SERVICE_ACCOUNT_EMAIL = "Enter service account e-mail from "
    + "https://code.google.com/apis/console/?api=plus into SERVICE_ACCOUNT_EMAIL in "
    + PlusServiceAccountSample.class;

次のようになります。

/** E-mail address of the service account. */
private static final String SERVICE_ACCOUNT_EMAIL = "XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXX@developer.gserviceaccount.com";

これと、.p12 キーをプロジェクトにダウンロードすることは、アプリケーションが認証するために重要です。

于 2013-06-11T14:56:04.577 に答える