2013-04-10 107 views
7

我最近将phonegap-facebook-plugin(https://github.com/phonegap/phonegap-facebook-plugin)集成到iOS和Android(同一应用程序)中。Facebook登录PhoneGap /科尔多瓦应用程序

我想做一些我认为很简单的事情:将电话旁路到本地Facebook进行登录/身份验证,并且始终使用网络对话框。一个人如何去完成这件事?

我的登录代码目前看起来是这样的:

初始化代码:

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

,登录电话是:

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

感谢您的帮助!

+0

我只是想完成相同的!任何帮助? –

+0

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

回答

4

我创建了一个插件,以方便不使用插件本机只使用jQuery Facebook和PhoneGap的之间的连接:

https://github.com/studiosoton/faceGap

+0

你的插件看起来非常有用!但是,我不明白如何使用它。目前的JavaScript是一个自包含的功能,不是吗? –

+0

我用这个插件能够登录到Facebook。但如何为PhoneGap项目设置主机 – User16119012

+0

官方现在是[这里](https://github.com/wizcorp/phonegap-facebook-plugin) – mut1na

0

在插件的Android版本,你可以强制它通过使用对话框修改插件在org.apache.cordova.facebook.ConnectPlugin类的login操作中调用me.facebook.authorize的方式。

你需要在额外的activityCode参数来传递与Facebook.FORCE_DIALOG_AUTH

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

我不能完全肯定的iOS,但你也许可以尝试与openWithBehaviorFBSessionLoginBehaviorForcingWebView

1

要绕过本地FB登录,您可以通过inAppBrowser或ChildBrowser插件制作您自己的手动Facebook身份验证流程,无需使用Facebook的JavaScript SDK(https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.3)。

您的应用程序必须发起一个重定向到一个端点,将显示登录对话框:

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

Facebook的重定向人上面提到的REDIRECT_URI并与其他元数据标记一起放置访问(如令牌到期时间):

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

您的应用需要检测到此重定向,然后从URI中读取访问令牌。然后您可以直接跳到检查访问令牌步骤。

相关问题