2016-08-30 7 views
1

私はAndroidのアプリケーションにGoogleログインを統合しようとしていますが、そのたびに偽の結果が出ます。 私はjson構成ファイルも含め、gradleファイルもチェックしました。 助けてください、私は立ち往生しています。 は、ここに私のコードGoogleログインを統合できませんか?

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .build(); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(this, this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 

    SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button); 
    signInButton.setSize(SignInButton.SIZE_STANDARD); 
    signInButton.setScopes(gso.getScopeArray()); 
} 



@Override 
public void onStart() { 
    super.onStart(); 

    OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient); 
    if (opr.isDone()) { 
     Log.d(TAG, "Got cached sign-in"); 
     GoogleSignInResult result = opr.get(); 
     handleSignInResult(result); 
    } else { 
     showProgressDialog(); 
     opr.setResultCallback(new ResultCallback<GoogleSignInResult>() { 
      @Override 
      public void onResult(GoogleSignInResult googleSignInResult) { 
       hideProgressDialog(); 
       handleSignInResult(googleSignInResult); 
      } 
     }); 
    } 
} 


@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); 
    if (requestCode == RC_SIGN_IN) { 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     int statusCode = result.getStatus().getStatusCode(); 
     Log.d(statusCode+"oo", "joij"); 
     handleSignInResult(result); 
    } 
} 

private void handleSignInResult(GoogleSignInResult result) { 
    Log.d(TAG, "handleSignInResult:" + result.isSuccess()); 
    Log.d(result+"hello", "hii me prateek"); 
    if (result.isSuccess()) { 
     GoogleSignInAccount acct = result.getSignInAccount(); 
     mStatusTextView.setText("done"); 
     updateUI(true); 
    } else { 
     mStatusTextView.setText("not done"); 
     // Signed out, show unauthenticated UI. 
     updateUI(false); 
    } 
} 
private void signIn() { 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
    startActivityForResult(signInIntent, RC_SIGN_IN); 
} 

private void revokeAccess() { 
    Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
      new ResultCallback<Status>() { 
       @Override 
       public void onResult(Status status) { 
        // [START_EXCLUDE] 
        updateUI(false); 
        // [END_EXCLUDE] 
       } 
      }); 
} 
+0

行ごとにデバッグしましたか? '' GoogleSignInResult result''の値は何ですか? –

+0

[email protected]0 –

+0

rakesh kashyap、それはこの形式のものです。 –

答えて

6

範囲とidTokenのリクエストを忘れました。以下を参照してください。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestScopes(new Scope(Scopes.DRIVE_APPFOLDER)) 
      .requestIdToken(getString(R.string.server_client_id)) 
      .requestEmail() 
      .build(); 
+0

server_client_idとは何ですか? –

+1

1.開発コンソールに接続します。https://console.developers.google.com/apis/credentials?project= 2.プロジェクトを選択して&資格情報に移動します 3.「クレジットの作成」をクリックします 4. [ OAuthクライアントID "オプションを使用します。 5.詳細を入力し、あなたのserver_client_idを取得します。 –

0

あなたのコードは、あなたが、OAuthのクライアントIDなどをAPIキーを作成しなかった、IMOそれはGoogleのdevのインタフェースにですが、私には正しいように見えるのですか?

+0

私はAPIキーを作成しましたが、OAuthクライアントIDについてはわかりません。 –

関連する問題