8

Wykonałem krok "Tworzenie nowego projektu Android z Facebookiem" pod numerem https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/ Proces logowania jest w porządku. Ponieważ chciałbym użyć natywnego przycisku Android do zalogowania się użytkownika, nieznacznie modyfikuję kod, przenosząc poniższy kod do View.OnClickListener() natywnego przycisku Android. Poniżej znajduje się kod w słuchacza:Logowanie za dodatkową zgodą z Facebook SDK 3 dla Androida

Session.openActiveSession(MainActivity.this, true, new Session.StatusCallback() { 
    // callback when session changes state 
    @Override 
    public void call(Session session,SessionState state, Exception exception) { 
     if (session.isOpened()) {       
      // make request to the /me API 
      Request.executeMeRequestAsync(session,new Request.GraphUserCallback() { 

       // callback after Graph API 
       // response with user object 
       @Override 
       public void onCompleted(GraphUser user,Response response) { 
        if (user != null) { 
         Toast.makeText(getApplicationContext(), "Hello " + user.getName() +" "+user.getId()+"!", Toast.LENGTH_LONG).show(); 
        } 
       } 
      }); 
     } 
    } 
}); 

onActivityResult() i AndroidManifest.xml jest taka sama jak w tutorialu

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

Jednak chciałbym zwrócić się „read_friendlists” kiedy loguje się pomyślnie. Przeczytałem samouczek pod numerem https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/, ale używa on dostosowanego przycisku Facebook SDK. Jak mogę osiągnąć takie samo działanie w przypadku natywnego przycisku Androida, takiego jak mój kod pokazany powyżej?

+0

[Zajrzyj do tego posta] (https://developers.facebook.com/docs/ samouczki/androidsdk/3.0/scrumptious/show-friends /); –

+3

@Adil Thank you! Czytając to, myślę, że wadą tutoriala (lub SDK?) W moim przypadku jest to, że zawiera on zbyt wiele szczegółów pod maską. Dlatego deweloper nie jest łatwy do wykorzystania pakietu SDK do niestandardowych przepływów programów i interfejsów użytkownika. Wykonaj https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/ inny przykład. Przycisk logowania dostarczony przez SDK jest łatwy w obsłudze, ale trudno mi go dostosować interfejs użytkownika i utrzymać jego implementację/funkcję. Myślę, że pogląd i kontrola powinny być rozdzielone. – Greenhand

+0

Tak, używam silnika gry i nie używam żadnych widoków Androida, tylko przy użyciu opengl, nie mam pojęcia, jak to zaimplementować. – Mustafa

Odpowiedz

3

Właśnie odpowiedziałem na podobne pytanie w innym poście. Moje rozwiązanie pozwala używać natywnego przycisku i żądać dodatkowych uprawnień do odczytu po pierwszym logowaniu użytkownika. Sprawdź to tutaj Ask for more permissions with 3.0 SDK

Powiązane problemy