Необходимо загрузить идентификаторы facebook ID во Flash, используя только сценарии на стороне клиента - PullRequest
0 голосов
/ 02 сентября 2011
  1. Я хотел бы просто отобразить имя пользователя и фотографию во флеш-приложении.
  2. Я надеюсь сделать это только на клиенте без использования каких-либо серверных сценариев.
  3. Платформа ActionScript 3 SDK для Facebook в течение следующих нескольких недель находится в стадии разработки, чтобы соответствовать новым требованиям Facebook, поэтому я не верю, что текущая сборка будет полезной.

Мы искали и строили тесты в течение недели без удачи. У меня такое ощущение, что ответ либо очень прост, либо невозможен.

Пожалуйста, помогите, если у вас есть решение. Спасибо

1 Ответ

0 голосов
/ 02 сентября 2011

Я думаю, что в настоящее время лучшая практика состоит в том, чтобы получить все через javascript SDK и передать эти объекты в ваш swf через внешний интерфейс.

Пример .. (убедитесь, что ваш swf-идентификатор - "flashObj")

Код Javascript:

<script type="text/javascript">
      window.fbAsyncInit = function() {
        FB.init({appId: '<INSERT 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) {
            var usrs = new Array();
            usrs.push(response);
            document.getElementById('flashObj').loadUser(usrs);
        });
      };

      function requestLogin()
      {
        FB.login(function(response) {
          if (response.session) {
            if (response.perms) {
                document.getElementById('flashObj').onLogin();
            } else {
              // user is logged in, but did not grant any permissions
            }
          } else {
            // user is not logged in
          }
        }, {perms:'email,user_birthday'});
      }
    </script>

А затем в AS3:

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

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

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

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

        _FBuser = new FBUser(userData.id);
        _FBuser.firstName = userData.first_name;
        _FBuser.lastName = userData.last_name;
        var d:Date = new Date(String(userData.birthday));
        _FBuser.birthDate = d;
        _FBuser.gender = userData.gender;
        _FBuser.email = userData.email;

        dispatchEvent(new Event(Event.COMPLETE));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...