3

エンドポイントの 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)

よろしくお願いします。

4

1 に答える 1

4

私が間違っていた場所を見つけました:

@API と Android でオーディエンスとして WEB クライアント ID を指定する必要があります。Android クライアント ID は、@API clientIds でのみ使用されます。

于 2013-02-19T01:04:38.077 に答える