6

このトピックに関する何十もの回答を調べ、公式のクイック スタート ガイドに従い、考えられることはすべて実行しました。

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 など) と連携して機能しますが、単独では機能しません。それはなぜですか、どうすればよいですか?

4

2 に答える 2

0

mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API, Plus.PlusOptions.builder().build()) .addScope(Plus.SCOPE_PLUS_LOGIN).build();

「Plus」は非推奨であるため、Plus.SCOPE_PLUS_LOGIN の使用はお勧めできません。

于 2016-08-25T09:51:22.837 に答える
0

このコードを次のコードに置き換えることができます。

   mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Plus.API, Plus.PlusOptions.builder().build())
            .addScope(Plus.SCOPE_PLUS_LOGIN).build();
于 2016-04-06T03:52:11.293 に答える