Facebook Actionscript и IE

#actionscript-3 #internet-explorer #actionscript #facebook-graph-api

#actionscript-3 #internet-explorer #actionscript #facebook-graph-api

Вопрос:

Я пытаюсь использовать Facebook Actionscript graph api, но, похоже, у меня возникают проблемы в IE (другие браузеры, такие как chrome и firefox, пока кажутся нормальными).

Насколько я могу судить, он нормально входит в систему и возвращает идентификатор пользователя, но когда я выполняю поиск по этому пользователю с Facebook.api (_user, handleUserRequest); Я получаю сообщение об ошибке.

Есть ли какие-либо известные проблемы с Facebook Actionscript graph api, которые влияют только на IE?

спасибо ob

По запросу — ошибка заключается в следующем:

 [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: https://graph.facebook.com/100002210990429?access_token=205690086123032|2.UzvN3mFr07kPAecZ7qN1Rg__.3600.1303135200.1-100002210990429|z9L_c26QKCc6cs2g5FClG_BsoZg"]
  

Это, если этот URL-адрес вставлен в chrome, он работает просто отлично, но IE возвращает «невозможно загрузить XXXXXXXX с graph.facebook.com ‘

лучший obie

код, который я использую, выглядит следующим образом:

 package com.client.facebookgame.services 
{

    import com.client.facebookgame.services.events.FacebookServiceEvent;
    import com.facebook.graph.data.FacebookSession;
    import com.facebook.graph.Facebook;
    import flash.events.Event;
    import flash.events.EventDispatcher;
    import flash.events.TimerEvent;
    import flash.external.ExternalInterface;
    import flash.net.URLRequestMethod;
    import flash.utils.Timer;
    import uk.co.thereceptacle.utils.Debug;

    /**
     * Facebook Service
     */
    public class FacebookService extends EventDispatcher
    {
        // constants
        public static const API_KEY             : String = "XXXXXX";
        public static const PERMISSIONS         : String = "read_stream,publish_stream,user_likes";
        public static const FB_REDIRECT_URL     : String = "http://apps.facebook.com/appname/";
        public static const LOGGED_IN           : String = "loggedin";
        public static const LOGGED_IN_ON_FB     : String = "loggedinonfacebook";
        public static const LOGGED_OUT          : String = "loggedout";
        public static const LOGGED_OUT_ON_FB    : String = "loggedoutonfacebook";

        public static const TIMEOUT_COUNT       : int = 10;
        public static const TIMER_DELAY         : int = 3 * 1000;


        // properties
        private var _user           : String;
        private var _topUrl         : String;
        private var _currentState   : String;
        private var _timer          : Timer;
        private var _timerCount     : int;

        public var postObject       : Object;


        // constuctor
        public function FacebookService() 
        {
            if (ExternalInterface.available) _topUrl = ExternalInterface.call("top.location.toString");
            Debug.log("facebook init", this);
            Facebook.init(API_KEY, handleLogin);

            startTiming();

            currentState = _topUrl ? LOGGED_OUT : LOGGED_OUT_ON_FB;
        }




        // methods
        public function login():void
        {
            Facebook.login(handleLogin, { perms: PERMISSIONS } );
        }

        public function logout():void
        {
            Facebook.logout(handleLogout);
        }

        public function selectUserFriendsWithAppRequestDialogue(message:String, dialogueType:String = "iframe", optionalPostObject:Object = null):void
        {
            this.postObject = optionalPostObject;
            Facebook.ui("apprequests", { message:message }, handleAppRequest, dialogueType);
        }

        public function checkIfUserLikesApp():void
        {
            Facebook.api(_user   "/likes", handleLikes);
        }

        private function startTiming():void
        {
            if (_timer) clearTimer();
            _timer = new Timer(TIMER_DELAY, TIMEOUT_COUNT);
            _timer.addEventListener(TimerEvent.TIMER, handleTimerEvents);
            _timer.addEventListener(TimerEvent.TIMER_COMPLETE, handleTimerEvents);
            _timer.start();
        }

        private function clearTimer():void
        {
            _timer.stop();
            _timer.removeEventListener(TimerEvent.TIMER, handleTimerEvents);
            _timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handleTimerEvents);
            _timer = null;

            _timerCount = 0;
        }

        // event handlers
        private function handleLogin(success:Object, fail:Object):void
        {
            if (_timer) clearTimer();

            if (success)
            {
                Debug.log(success, this);
                _user = success.uid;

                currentState = _topUrl ? LOGGED_IN : LOGGED_IN_ON_FB;

                Facebook.api("/"   _user, handleGetUser);
            }
            else if (!success amp;amp; !_topUrl)
            {
                ExternalInterface.call("redirect", API_KEY, PERMISSIONS, FB_REDIRECT_URL);
            }
        }

        private function handleGetUser(success:Object, fail:Object):void
        {
            Debug.log(success   ", "   fail, this);
            if (success) dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.GET_USER_COMPLETE, success));
            else dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.GET_USER_FAIL, fail, true));
        }

        private function handleAppRequest(result:Object):void
        {
            if (postObject)
            {
                for (var i:int = 0; i < result.request_ids.length; i  )
                {
                    var requestID:String = result.request_ids[i];
                    Facebook.api("/"   requestID, handleRequestFriends); 
                }
            }
        }

        private function handleRequestFriends(success:Object, fail:Object):void
        {
            if (success)
            {
                var friendID:String = success.to.id;
                Facebook.api("/"   friendID   "/feed", handleSubmitFeed, postObject, URLRequestMethod.POST);
            }
            else
            {
                Debug.log(fail, this);
            }
        }

        private function handleLikes(success:Object, fail:Object):void
        {
            if (success)
            {
                for (var i:int = 0; i < success.length; i  )
                {

                    Debug.log("compare "   success[i].id    " with key: "   API_KEY, this);
                    if (success[i].id == API_KEY)
                    {

                        Debug.log("found that user liked this app!!!", this, true);
                        dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.USER_LIKES_APP, { userLikesApp:true } ));
                        return;
                    }
                }

                dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.USER_LIKES_APP, { userLikesApp:false } ));
            }
            else
            {
                Debug.log(fail, this, true);
            }
        }

        private function handleLogout(obj:*):void
        {
            currentState = _topUrl ? LOGGED_OUT : LOGGED_OUT_ON_FB;
        }

        private function handleSubmitFeed(success:Object, fail:Object):void
        {
            if (success) dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.FEED_SUBMITTED, success));
            else dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.FEED_FAIL, fail, true));
        }

        private function handleTimerEvents(e:TimerEvent):void 
        {
            switch (e.type)
            {
                case TimerEvent.TIMER :
                    _timerCount   ;
                    Debug.log("facebook init attempt "   _timerCount, this);
                    Facebook.init(API_KEY, handleLogin);
                    break;

                case TimerEvent.TIMER_COMPLETE :
                    clearTimer();
                    dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.GET_USER_FAIL));
                    break;
            }
        }



        // accessors / mutators
        public function get currentState():String { return _currentState; }
        public function set currentState(value:String):void
        {
            if (_currentState != value)
            {
                _currentState = value;
                dispatchEvent(new FacebookServiceEvent(FacebookServiceEvent.STATE_UPDATE));
            }
        }

    }

}
  

Большое спасибо
ob

Комментарии:

1. Ни при каких обстоятельствах не сообщайте нам, какую ошибку вы получаете! Это лишило бы вас удовольствия от угадывания.

2. Что это за ошибка, которую вы получаете?

3. ROFL — извинения — ошибка, которую я получаю, является ошибкой: [IOErrorEvent type=»IOError» bubbles= false cancelable = false eventPhase = 2 text =»Ошибка # 2032: ошибка потока. URL: graph.facebook.com /…

4. вопрос был отредактирован с ошибкой

5. Никогда не публикуйте код, мы могли бы решить вашу проблему. Я не использую силу

Ответ №1:

я нашел ответ в списке проблем facebook actionscript:http://code.google.com/p/facebook-actionscript-api/issues/detail?id=197

Я также пытался найти решение, но единственное — опубликовать его с помощью flash Player 10

исправлена проблема для меня

Ответ №2:

Я столкнулся с такой же проблемой.Основной причиной этой проблемы является версия Flash Player. Используйте Flash Player 10 файл FaceBookGraphApi SWC совместим с Flash Player 10. Это решение предназначено только для тех, кто использует swc из GraphAPI_Examples_1_6_1