このトピックに関する何十もの回答を調べ、公式のクイック スタート ガイドに従い、考えられることはすべて実行しました。
OAuth とパブリック API アクセスの両方に適切なデバッグ SHA1 キーを設定するなど、すべての部分で Google 開発者コンソールをセットアップしました (それが必要かどうかさえわかりません)。
問題
にスコープを設定する際に問題がありますGoogleApiClient
。
googleClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(...)
.build();
さまざまなスコープの組み合わせでログインできます。
.addScope(new Scope("https://www.googleapis.com/auth/plus.login"))
.addScope(new Scope("https://www.googleapis.com/auth/plus.profile.emails.read"))
//WORKS! OR:
.addScope(Plus.SCOPE_PLUS_LOGIN) // == https://www.googleapis.com/auth/plus.login
.addScope(Plus.SCOPE_PLUS_PROFILE) // == https://www.googleapis.com/auth/plus.me
//WORKS! OR:
.addScope(new Scope("https://www.googleapis.com/auth/plus.profile.emails.read"))
//WORKS! OR:
.addScope(Plus.SCOPE_PLUS_PROFILE) // == https://www.googleapis.com/auth/plus.me
//WORKS!
それらはすべてうまく機能し、リクエストに反映されていることがわかります (つまり、login
+を設定emails.read
すると、ダイアログは実際にこれら 2 つを要求します)。
ただし、必要なのは「https://www.googleapis.com/auth/plus.login」だけです。を設定しただけ.addScope(new Scope("https://www.googleapis.com/auth/plus.login"))
、または同等にを設定した場合.addScope(Plus.SCOPE_PLUS_LOGIN)
、well-document Toast エラーが発生します。
内部エラーが発生しました。
したがって、このスコープ (私が必要とする唯一のスコープ) は、他のスコープ (plus.me など) と連携して機能しますが、単独では機能しません。それはなぜですか、どうすればよいですか?