Facebook使用PhoneGap / Cordova App登录

时间:2013-04-10 21:23:24

标签: facebook cordova phonegap-plugins

我最近将phonegap-facebook-plugin(https://github.com/phonegap/phonegap-facebook-plugin)整合到iOS和Android(同一个应用程序)中。

我想做一些我认为很简单的事情:绕过本地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" });

感谢您的帮助!!

4 个答案:

答案 0 :(得分:4)

我创建了一个插件,以方便Facebook和phonegap之间的连接,而不使用只有Jquery的Plugin Native:

https://github.com/studiosoton/faceGap

答案 1 :(得分:1)

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

您的应用必须启动重定向到端点,该端点将显示登录对话框:

gem 'spree', :github => 'spree/spree', :branch => 'master'

Facebook将人们重定向到上面提到的redirect_uri,并在URI片段中放置一个访问令牌以及一些其他元数据(例如令牌到期时间):

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

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

答案 2 :(得分:0)

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

您需要使用Facebook.FORCE_DIALOG_AUTH传递额外的activityCode参数:

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

我对iOS并不完全确定,但您可以尝试使用openWithBehaviorFBSessionLoginBehaviorForcingWebView

答案 3 :(得分:0)

没有任何Facebook插件,您可以使用Facebook功能,为此使用 phonegap.facebook.inappbrowser.js 使用此js您可以轻松访问所有Facebook功能以获取更多信息访问此URL:{{3 }}