2013-04-10 16 views
7

Recentemente ho integrato il plugin phonegap-facebook (https://github.com/phonegap/phonegap-facebook-plugin) in iOS e Android (stessa app).Facebook Login con PhoneGap/Cordova App

Voglio fare qualcosa che ritengo sia semplice: by-passare la chiamata a Facebook nativo per login/autenticazione e usare sempre la finestra di dialogo web. Come si fa a realizzare questo?

Il mio codice di accesso attualmente appare così:

codice

Init:

//facebook initialization 
FB.init({ 
    appId: 'xxxxxxxxxxxx', //'<%#= FB_APP_ID %>',//'', 
    nativeInterface: CDV.FB, 
    useCachedDialogs: false 
}); 

e la chiamata di accesso è:

FB.login(function(response) { 
          if (response.authResponse) { 
           // connected 

            me.signInFacebook({ 
            token: response.authResponse.accessToken, 
            email: response.authResponse.email, 
            success: function (data) { 

            // hide login view and show tabview 
            form.destroy(); 

            // continue whatever action was previously happening 
             me.continueAction(tabIndexBack, callback); 
            }, 
            failure: function (response) { 
             // show errors          Ext.Viewport.down('tabscontainerview').setActiveItem(3); 
            } 
           }); 
          } else { 
           //go back 
           Ext.Viewport.down('tabscontainerview').setActiveItem(3); 
           alert('fb login error'); 
          } 
         },{ scope: "email" }); 

Grazie per il vostro aiuto !!

+0

Voglio solo realizzare lo stesso! qualsiasi aiuto? –

+0

http://stackoverflow.com/questions/16576977/is-there-any-facebook-plugin-for-phonegap-2-7-0/16579592#16579592 –

risposta

4

ho creato un plugin per facilitare il collegamento tra Facebook e PhoneGap senza usare plugin nativo solo con Jquery:

https://github.com/studiosoton/faceGap

+0

Il plugin sembra estremamente utile! Tuttavia, non capisco come usarlo. Il javascript corrente è una funzione autonoma, no? –

+0

Ho usato questo plugin in grado di accedere a Facebook. Ma come impostare l'host per i progetti PhoneGap – User16119012

+0

quello ufficiale è ora [qui] (https://github.com/wizcorp/phonegap-facebook-plugin) – mut1na

0

Sulla versione Android del plugin, è possibile forzarlo ad utilizzare la finestra di dialogo modifica del modo in cui il plug-in chiama me.facebook.authorize nell'azione login della classe org.apache.cordova.facebook.ConnectPlugin.

Avrai bisogno di passare un parametro aggiuntivo activityCode con Facebook.FORCE_DIALOG_AUTH:

me.facebook.authorize(cordova.getActivity(), me.permissions, Facebook.FORCE_DIALOG_AUTH, new AuthorizeListener(me)); 

Non sono del tutto sicuro di iOS, ma si potrebbe essere in grado di provare con openWithBehavior e FBSessionLoginBehaviorForcingWebView

0

Senza alcun plug-in di Facebook è possibile utilizzare la funzionalità di Facebook, per cui utilizzare phonegap.facebook.inappbrowser.js utilizzando questo js si può facilmente accedere a ll funzionalità Facebook per ulteriori informazioni visitare questo URL: Facebook Integration Step without any plugins

1

Per bypassare nativo login FB, è possibile rendere il proprio flusso di autenticazione manuale facebook senza l'utilizzo di JavaScript SDK del Facebook (https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3) tramite inAppBrowser o ChildBrowser plugin.

La vostra applicazione deve avviare un reindirizzamento a un endpoint che visualizzerà la finestra di login:

https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&response_type=token&scope=email 

Facebook reindirizza le persone al redirect_uri di cui sopra e pone un token di accesso insieme con alcuni altri metadati (come ad esempio la scadenza di token tempo) nel frammento URI:

https://www.facebook.com/connect/login_success.html# 
access_token=ACCESS_TOKEN... 

la vostra applicazione ha bisogno di rilevare questo redirect e quindi leggere il token di accesso dal URI. È quindi possibile saltare direttamente alla fase di controllo dei token di accesso.