2014-11-28 23 views
5

Obecnie pracuję nad funkcją logowania do Google Plus w mojej aplikacji.Plus.PeopleApi.getCurrentPerson zwraca wartość null

stworzyłem GoogleApiClient Builder jak poniżej

Plus.PlusOptions options = new Plus.PlusOptions.Builder() 
      .addActivityTypes("http://schemas.google.com/AddActivity") 
      .build(); 

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

i metoda onConnected

@Override 
public void onConnected(Bundle arg0) { 
    // TODO Auto-generated method stub 

    plusUtilities.ShowToast("Login successful"); 

    updateGPbutton(); 
    // hide progress DiaLog 
    plusUtilities.DissmissPD(); 
    // it has deprecated 
    // plusUtilities.ShowToast("Login to Google+ with " + 
    // mPlusClient.getAccountName().toString()); 

    // upgraded class 
    plusUtilities.ShowToast("Login to Google+ with " 
      + Plus.AccountApi.getAccountName(myGoogleApiClient).toString()); 

    // deprecated 
    // mPlusClient.loadPeople(this, "me"); 

    Plus.PeopleApi.load(myGoogleApiClient, "me"); 
    // plusUtilities.ShowPD("Fetching user data... "); 

    // upgraded and call fetch_user_details method here instead of calling 
    // in onPersonLoad() override method 
    Log.d("Googleplusclient", 
      "" + Plus.PeopleApi.getCurrentPerson(myGoogleApiClient)); 
    Plus.PeopleApi.loadVisible(myGoogleApiClient, null).setResultCallback(this); 

    if (Plus.PeopleApi.getCurrentPerson(myGoogleApiClient) != null) { 
     Person currentPerson = Plus.PeopleApi 
       .getCurrentPerson(myGoogleApiClient); 
     fetch_User_Details(currentPerson); 
    } 

} 

Poniższa metoda zwraca null

Plus.PeopleApi.getCurrentPerson (myGoogleApiClient)

I postępował zgodnie z the link dla r rozwiązanie. Potem też poszedłem za tym developer link. Dopóki nie otrzymuję wartości null.

Jak rozwiązać ten problem?

Odpowiedz

12

Cóż, twój podpis DEBUG sha1 jest inny niż twój podpis customkey.keystore sha1 !!!! , więc powinieneś znaleźć sygnaturę sha1 debugowania i utworzyć ten klucz na referencjach API w konsoli Google ASWELL! : D to działa i naprawia to mi zaufaj, sprawdź konsolę api i założę się, że twoje żądania api to 0?

+1

co masz na myśli podpisu customkey.keystore sha1! ? – tranquil

+1

@tranquil - oznacza to wydanie .keystore, którego użycie powinno zostać użyte do podpisania twojej wersji/rynkowej wersji aplikacji –