4

我正在使用 Sencha 创建一个应用程序,我需要在其中集成 facebook 登录。当我点击“用 facebook 登录”按钮时,如果用户没有登录 facebook,它应该显示一个弹出窗口来输入 facebook 电子邮件 ID 和密码,否则如果用户已经登录它应该只是签名- 使用 facebook 身份验证。如何使用 sencha touch 实现这一点。请帮忙 。如果提供此功能的代码将很有帮助。谢谢

4

2 回答 2

4

首先,您必须使用 facebook 创建 JavaScript SDK 应用程序(请点击此链接)。创建应用程序后,您将拥有 APP ID。然后将以下代码添加到 app.js

Ext.application({
    name: 'FBLogin',
    launch: function() {
        Ext.create('Ext.container.Viewport', {
            items:[
                {
                    xtype: 'panel',
                    html: '<center><div id="fblogin" class="fb-login-button">Login with Facebook</div></center>'
                }
            ],
            listeners:{
                render: function(obj, eOpts){
                    window.fbAsyncInit = Ext.bind(this.onFacebookInit, this);
                    (function(d){
                        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                        if (d.getElementById(id)) {return;}
                        js = d.createElement('script'); js.id = id; js.async = true;
                        js.src = "//connect.facebook.net/en_US/all.js";
                        ref.parentNode.insertBefore(js, ref);
                    }(document));
                }
            },
            onFacebookInit: function(){
                console.log('onFacebookInit');
                var me = this;
                FB.init({
                    appId      : 'YOUR_APP_ID',
                    status     : true,
                    xfbml      : true
                });
                FB.Event.subscribe('auth.authResponseChange', Ext.bind(me.onFacebookAuthResponseChange, me));
            },
            onFacebookAuthResponseChange: function(response){
                this.down('panel').setVisible(false);
                alert("Success fully Logged in");
            }
        });
    }
});

创建 Facebook APP 时,在使用 facebook 登录的网站下会有一个名为“SiteURL:”的字段。这应该指向您的网络应用程序 URL。(例如:http ://example.com )

于 2013-07-26T10:37:48.110 回答
4

您可以尝试使用Phonegap Facebook Connect Plugin 0.4.0(稳定版)和使用Phonegap Plugin Build为Android、Iphone、windows phone、blackbery 等构建包。

//on Device Ready
    FB.init({ appId: "appid", nativeInterface: CDV.FB, useCachedDialogs: false });
   // call for native app if there else give a popup for login
    FB.login(
                             function(response) {
                             if (response.session) {
                             alert('logged in');
                             } else {
                             alert('not logged in');
                             }
                             },
                             { scope: "email" }
                             );

为了与 sencha 集成,需要在 index.html 文件中添加三个脚本文件 cdv-plugin-fb-connect.js、phonegap.js 和 facebook-js-sdk.js 并将 config.xml 文件添加到项目构建中以用于 phone gap build 用于构建原生应用程序(不使用 sencha 原生打包)。对于 config.xml 文件配置,请参阅此配置帮助 如果有任何疑问,请参阅 此处的github 示例 希望它有效

于 2014-06-04T06:11:45.453 回答