2017-02-21 4 views
1

Ich implementiere derzeit eine Facebook-Login-Schaltfläche in meine native Anwendung reagieren. Sobald der Benutzer sich erfolgreich angemeldet hat, greife ich nach Informationen, Vorname, Nachname und E-Mail-Adresse.React native - fbsdk LoginManager vs LoginButton

Nach der SDK-Dokumentation und Online-Beispiele Lesen ich zwei verschiedene Ansätze, dies zu erreichen unter:

  1. Mit LoginButton & AccessToken dann eine GraphRequest

  2. Mit Loginmanager dann ein GraphRequest tun (die Ansatz, den ich gewählt haben):

    class LoginView extends Component { 
        _fbAuth =() => { 
         LoginManager.logInWithReadPermissions(['public_profile','email']).then(function(result){ 
          if(result.isCancelled){ 
           console.log('loging cancelled') 
          } 
          else { 
           console.log('login success' + result.grantedPermissions) 
    
           const infoRequest = new GraphRequest('/me', { 
            parameters: { 
             'fields': { 
              'string' : 'email,first_name,last_name,picture' 
             } 
            } 
           }, (err, res) => { 
            console.log(err, res); 
           }); 
           new GraphRequestManager().addRequest(infoRequest).start(); 
    
          } 
         }, function(error){ 
          console.log('An error occured: ' + error) 
         }) 
        } 
    
        render(){ 
         return (
          <TouchableHighlight style={{flex:1}} onPress={() => {this._fbAuth()}}> 
           <View style={styles.container}> 
            <View style={styles.buttonContainer}> 
             <Text style={{flex:1}}>Login with Facebook</Text> 
            </View> 
           </View> 
          </TouchableHighlight> 
         ) 
        } 
    } 
    

Was ist der Hauptunterschied zwischen LoginManager & LoginButton?

Online Beispiele für LoginButton auch das aktuelle Token erhalten: AccessToken.getCurrentAccessToken().then(...)

Mit Loginmanager I, ohne die Benutzerinformationen erhalten verwaltet AccessToken zu verwenden - ist Loginmanager AccessToken hinter der Szene nennen?

Gibt es einen bevorzugten Ansatz?

+0

Überprüfen Sie meine Antwort –

Antwort

0

Was ich verstehe, ist

Wenn Sie LoginButton & AccessToken verwenden dann eine GraphRequest

Also, müssen Sie überprüfen, ob Ihr AccessToken Null ist oder nicht oder Ihre currentToken gültig ist oder nicht, wenn Sie haben accessToken, dann können Sie Daten direkt erhalten, ohne auf Facebook Button oder Login-Button zu klicken. Das heißt, wenn Sie die Abmelde-Methode nicht ausführen oder die App nicht deinstallieren, können Sie trotzdem Daten mit Hilfe von accessToken mit Graph Request abrufen.

Wenn Sie jetzt Loginmanager verwenden Sie dann ein GraphRequest

So Dieser Ansatz, den Sie immer auf Safari bringt für autorization Prozess der Facebook App. LoginManager öffnet normalerweise Facebook in Safari, kehrt dann zur App zurück und gibt Daten aus.

Ich hoffe, Sie können es verstehen.
Vielen Dank

+0

Vielen Dank für Ihre Antwort. Zwischen beiden sollte ein bevorzugter Ansatz verwendet werden? – John

+0

Bessere Verwendung Login-Button & AccessStoken, weil dies Ihnen Daten ohne Facebook-Seite zu öffnen, wenn Ihr AccessStoken ist nicht Null oder zugänglich –

+0

Great kein Problem. Danke für deinen Beitrag. – John

Verwandte Themen