2

我想将 facebook 登录按钮集成到我的网站中。用户只能使用他/她的 Facebook 帐户登录。我对有关用户的任何其他信息不感兴趣。

但我有点困惑......我阅读了官方的 facebook 文档,但我不明白我需要什么。我不确定是否需要使用Graph API社交插件登录按钮

你能帮我解决我的疑惑吗?非常感谢!

4

1 回答 1

0

要在 Flash 中使用它,您必须通过一些 ExternalInterface 调用来使用 javascript sdk。这就是我一直这样做的方式。

AS3

        public function FBconnect():void {
            ExternalInterface.addCallback("onLogin", onLogin);
            ExternalInterface.addCallback("onError", onError);
            ExternalInterface.call("requestLogin");
        }

        private function onError():void {
            dispatchEvent(new DataEvent(DataEvent.ERROR));
        }

        public function logout():void {
            ExternalInterface.call("FB.logout", null);
        }

        private function onLogin():void {
            debugTools.trace("FB LOGIN");
            connectUser();
        }

        private function connectUser():void {
            ExternalInterface.addCallback("loadUser", userCallback);
            ExternalInterface.call("connectUser");
        }

        private function userCallback(data:Array):void {
            debugTools.trace("FB USER LOADED");
            var userData:Object = data[0];

            _FBuser = new FBUser(userData.id);
            _FBuser.firstName = userData.first_name;
            _FBuser.lastName = userData.last_name;
            _FBuser.email = userData.email;

            dispatchEvent(new DataEvent(DataEvent.SUCCESS));
        }

JS

window.fbAsyncInit = function() {
                FB.init({
                    appId: YOUR_APP_ID,
                    status: false,
                    cookie: true,
                    xfbml: false
                });         
            };
            (function() {
              var e = document.createElement('script'); e.async = true;
              e.src = document.location.protocol +
                '//connect.facebook.net/en_US/all.js';
              document.getElementById('fb-root').appendChild(e);
            }());

            function connectUser() {
                FB.api('/me', function(response) {
                    if(response) {                  
                        var usrs = new Array();
                        usrs.push(response);
                        document.getElementById('flashObj').loadUser(usrs);
                    } else {
                        document.getElementById('flashObj').onError();
                    }
                });
            };

            function requestLogin() {
                FB.login(function(response) {
                    if (response.authResponse) {
                        document.getElementById('flashObj').onLogin();              
                    } else {
                        document.getElementById('flashObj').onError();
                    }
                }, {scope:'email'});
            }

所以要把它分解。

我们在网页中加载 javascript sdk,如果您不知道,请查看 facebook 上的文档以了解如何操作。

接下来,通过 ExternalInterface,我们在 JS 中调用 FB.login,并在响应时通过 document.getElementById 调用 AS3 函数(以访问您的 swf)。

然后我们做同样的事情来使用 Graph API 来获取我们用户的信息。

以我的经验,这是 facebook 将您的用户连接到您的 flash 应用程序的最佳工作流程。

于 2012-06-08T09:14:20.683 回答