エンドポイントの 1 つで User にアクセスしようとしていますが、Android から魔法を起こすことができません。ドキュメンテーションは、トラステッド テスター プログラムから移行したばかりで、やや壊れた状態にあるようです。矛盾する情報が表示されているので、ここの誰かが助けてくれることを願っています。
API コンソールで Android のクライアント ID を作成しました。次のように、エンドポイントでクライアント ID とオーディエンスとして指定しています。
@Api(
name = "tictactoe",
clientIds = {"myAndroidClientId.apps.googleusercontent.com"},
audiences = {"myAndroidClientId.apps.googleusercontent.com"}
)
私の Android アクティビティでは、資格情報を作成しています。
credential = GoogleAccountCredential.usingAudience(this, "server:client_id:myAndroidClientId.apps.googleusercontent.com");
credential.setSelectedAccountName(myAccountName);
AsyncTask でネットワーク呼び出しを行う前に、それを使用してサービスを構築しています。
Builder builder = new MyService.Builder(transport, jsonFactory, credential);
MyService service = builder.build();
thing = service.things().get().execute();
次に、この例外をスローします。
com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException
Caused by:
com.google.android.gms.auth.GoogleAuthException: Unknown
com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:192)
com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:217)
よろしくお願いします。