2016-08-30 2 views
1

Я пытаюсь интегрировать вход google в мое приложение Android, но каждый раз, когда он дает ложный результат. Я включил файл конфигурации json, также проверил файлы градиента. Пожалуйста, помогите, я застрял. Вот мой кодНе удается интегрировать вход 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

сделал u отладки по строкам ??? whats значение '' 'Результат GoogleSignInResult''' –

+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.go в консоль разработчика https://console.developers.google.com/apis/credentials?project= 2.выберите свой проект и перейдите в учетные данные 3.Нажмите «Создать Crednials» 4. Выберите " OAuth client ID ". 5. Заполните детали и вы получите свой server_client_id –

0

Ваш код кажется правильным для меня, имо это в интерфейсе Dev Google, вы создали API KEY, OAuth клиент Id и т.д.?

+0

Я создал ключ API, но я не уверен в идентификаторе клиента OAuth. –

Смежные вопросы