2013-04-10 29 views
7

Niedawno włączyłem wtyczkę phonegap-facebook (https://github.com/phonegap/phonegap-facebook-plugin) do systemu iOS i Android (ta sama aplikacja).Facebook Login with PhoneGap/Cordova App

Chcę zrobić coś, co moim zdaniem jest proste: obejść połączenie z natywnym facebookiem w celu zalogowania/uwierzytelnienia i zawsze używać dialogu internetowego. Jak można to osiągnąć?

Mój kod logowania aktualnie wygląda tak:

kod

Init:

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

i wezwanie logowania:

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" }); 

dzięki za pomoc !!

+0

Po prostu chcę osiągnąć to samo! jakaś pomoc? –

+0

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

Odpowiedz

4

stworzyłem wtyczki, aby ułatwić połączenie między Facebook i PhoneGap bez użycia wtyczek Native tylko z jQuery:

https://github.com/studiosoton/faceGap

+0

Wtyczka wygląda niezwykle użytecznie! Jednak nie rozumiem, jak z niego korzystać. Obecny javascript jest niezależną funkcją, nie? –

+0

Użyłem tej wtyczki, aby zalogować się na Facebooku. Ale jak ustawić hosta dla projektów Phonegap – User16119012

+0

oficjalny jest teraz [tutaj] (https://github.com/wizcorp/phonegap-facebook-plugin) – mut1na

0

na Android wersji wtyczki, można zmusić go do korzystania z okna dialogowego przez modyfikując sposób, w jaki wtyczka wywołuje me.facebook.authorize w akcji login klasy org.apache.cordova.facebook.ConnectPlugin.

Musisz zdać w dodatkowym parametrem activityCode z Facebook.FORCE_DIALOG_AUTH:

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

Nie jestem do końca pewien iOS, ale może być w stanie spróbować z openWithBehavior i FBSessionLoginBehaviorForcingWebView

0

Bez żadnych wtyczek Facebooka możesz korzystać z funkcji Facebooka, do tego użyj phonegap.facebook.inappbrowser.js używając tego js możesz łatwo uzyskać dostęp do ll Facebook funkcjonalność uzyskać więcej informacji, odwiedź ten adres: Facebook Integration Step without any plugins

1

Aby ominąć natywną FB logowanie, można stworzyć swój własny podręcznik facebook przepływ uwierzytelniania bez użycia JavaScript SDK na Facebooku (https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3) poprzez inAppBrowser lub ChildBrowser wtyczek.

Twoja aplikacja musi zainicjować przekierowanie do punktu końcowego, który wyświetli okno logowania:

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

Facebook przekierowuje ludzi do redirect_uri wspomniano powyżej i miejsca dostępu tokena wraz z niektórych innych metadanych (takich jak tokena upływie czas) we fragmencie URI:

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

Twoja aplikacja musi wykryć to przekierowanie, a następnie odczytać tokenu dostępu z URI. Następnie możesz przejść bezpośrednio do kroku Kontrola dostępu.

Powiązane problemy