0

ここの指示に従おうとしています:

Android アプリからのバックエンド コールの確認

私はここで尋ねた質問を拡張しています:

私のappengineアプリと接触しているAndroidアプリを特定する

私のテスト環境ではすべてうまくいっていました。アプリが Eclipse で使用していた debug.keystore があり、GoogleAuthUtil.getToken() への呼び出しからトークンを受け取りました。次に、コードを使用する実際のプロジェクトにコードをコピーしました。キーストアを取得し (Google Play での以前の公開から保存していました)、それを使用して Google API コンソールで新しいクライアント ID を作成しました。

次に、Eclipse を使用してプロジェクトをエクスポートしますが、正しいキーストアと関連する ID を使用した後、トークンを取得できません。

その間、私はさまざまなことを試みてきました。App Engine アプリ用に作成した ID を持っていました。Androidアプリでそれを使用したところ、トークンが与えられました。アプリエンジンのサイトで確認したときに、天気や特定のトークンがクリアされるかどうかはわかりませんが(そうではないのではないかと思います)、そこからトークンを取得しました。

GoogleAuthUtil.getToken() への Android 呼び出しで使用することになっている ID は、(Google API ページの)「インストールされたアプリケーションのクライアント ID」セクションからのものであると想定しています。そうではありませんか?アプリケーションの種類を「Android」に設定し、パッケージ名をアプリケーションに一致させることができるのは、そこでのみです。

4

1 に答える 1

1

次の形式を使用して client_id を指定していると仮定します。

オーディエンス:サーバー:client_id:$client_id

上記の形式が示唆するように、この client_id はホーム サーバー用であり、この場合は AppEngine アプリの client_id (Web アプリケーション client_id) です。AppEngine アプリを適切に構成すると、AppEngine で適切に検証されるはずです。

ここでも、Android アプリはトークンを要求し、AppEngine アプリに名前を付けます。Android プラットフォームは、キーストア ツールを使用して計算したパッ​​ケージ名と証明書ハッシュに基づいてアプリを認識できるため、リクエストで Android アプリの client_id に名前を付ける必要はありません。

于 2013-01-18T06:30:30.530 に答える