招待制だったので、Android アプリのバックエンドとして Google Cloud Endpoints を使用しています。しかし、私のアプリは突然認証できなくなりました (401 エラー、無効なトークン)。そのため、ユーザーの誰も同期できなくなりました。
サーバー ((Google App Engine) と Android アプリのコードは変更されていません。そのため、何が起こっているのかわかりません...
私が変更した唯一のことは、新しい開発者コンソールhttps://console.developers.google.comの設定です(古いコンソールhttps://code.google.com/apis/console/ではありません)。しかし、すぐにテストしたところ、まだ機能していました。その後しばらくして、エラーが発生しました。
これは私が設定の下で変更したものです:
1) API & 認証 -> 資格情報 API & 認証
- JavaScript で API を使用する Web サイトで作業しているため、Web アプリケーション (私の Android アプリの使用と同じ) のクライアント ID の下に JavaScript Origins への URL を追加しました。
URL を削除したので (以前の状態に戻りました)、それでも 401 エラーが発生します。クライアント ID とクライアント シークレットも以前と同様です。
2) API & auth -> 同意画面
- ウェブサイトにアイコンと新しい URL を追加しました。
古いコードと新しいコンソールに互換性の問題はありますか? それとも、現在 Google Cloud Endpoints に何らかの問題がありますか?
これは、Android アプリが Google クラウド エンドポイントにアクセスしようとしたときに表示されるエラー メッセージです。
05-13 22:17:33.726: W/GLSUser(209): GoogleAccountDataService.getToken()
05-13 22:17:37.664: W/GLSUser(209): GoogleAccountDataService.getToken()
05-13 22:17:41.667: W/GLSUser(209): [apk][apk] Permission for com.myapp to access audience:server:client_id:324234243423-sdfsdffdsagsdagsdgsadfsadf.apps.googleusercontent.com will be managed remotely.
05-13 22:17:44.011: W/System.err(8058): com.google.a.a.b.b.c: 401 Unauthorized
05-13 22:17:44.011: W/System.err(8058): {
05-13 22:17:44.011: W/System.err(8058): "code": 401,
05-13 22:17:44.011: W/System.err(8058): "errors": [
05-13 22:17:44.011: W/System.err(8058): {
05-13 22:17:44.011: W/System.err(8058): "domain": "global",
05-13 22:17:44.011: W/System.err(8058): "location": "Authorization",
05-13 22:17:44.011: W/System.err(8058): "locationType": "header",
05-13 22:17:44.011: W/System.err(8058): "message": "Invalid token.",
05-13 22:17:44.011: W/System.err(8058): "reason": "required"
05-13 22:17:44.011: W/System.err(8058): }
05-13 22:17:44.011: W/System.err(8058): ],
05-13 22:17:44.011: W/System.err(8058): "message": "Invalid token."
05-13 22:17:44.011: W/System.err(8058): }
ありがとう :)