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 アプリを作成すると、Facebook ログインのある Web サイトの下に「SiteURL:」というフィールドが表示されます。これは、Web アプリの URL を指している必要があります。(例: http://example.com )

于 2013-07-26T10:37:48.110 に答える