2

この API は壊れているか放棄されているようです。これは、この API 呼び出しが常に数時間失敗する日があるためです。今日も同じことが起きていますが、以前よりも時間がかかっています。

どうすればいいのかわからない。Air アプリを 2 つ持っていますが、現在動作していません。これに関する解決策はありますか?

簡単なコードを次に示します。

FacebookMobile.init(APP_ID, onInit);

private function onInit(fbSession:Object, fail:Object):void 
{
    if (fbSession){
        trace(fbSession.accessToken);
    }
    else{
        traceV2(fail); // it's a "deep" trace
        // other API methods related to login
    }
}

FacebookMobile.init() では、セッション オブジェクト (FB アクセス トークンを含む)、または「失敗」オブジェクトを予期する必要があります。
失敗オブジェクトはこれを私に返しています:

[Object]
|   [error:Object]
    | code = 190 
    | message = Malformed access token AAAEWSUA8XjUBAJo4JuO5hUMwSnKC95LNRr1nHHIU8rwPGzxvHIuhUcDziZA9ZC3xDf4ZBwYcqjVU1ir5wf5jlEsJ5zwyMhnnWGyWxXeKQZDZD,AAAEWSUA8XjUBAJo4JuO5hUMwSnKC95LNRr1nHHIU8rwPGzxvHIuhUcDziZA9ZC3xDf4ZBwYcqjVU1ir5wf5jlEsJ5zwyMhnnWGyWxXeKQZDZD 
    | type = OAuthException

前もって感謝します!


問題が修正されました。この特定の問題の解決策は、com.facebook.graph.FacebookMobile:560 のhandleLogin()関数内にあります。

    protected function handleLogin(result:Object, fail:Object):void {
        loginWindow.loginCallback = null;

        if (fail) {
            loginCallback(null, fail);
            return;
        }

        // ---------------||--------------------//
        // ---------------\/--------------------//
        // This line below solves this problem
        result.access_token = String(result.access_token).split(',')[0];
        // ---------------/\-------------------//
        // ---------------||-------------------//


        session = new FacebookSession();
        session.accessToken = result.access_token;
        session.expireDate = (result.expires_in == 0) ? null : FacebookDataUtils.stringToDate(result.expires_in) ;

        if (_manageSession) {
            var so:SharedObject = SharedObject.getLocal(SO_NAME);
            so.data.accessToken = session.accessToken;
            so.data.expireDate = session.expireDate;
            so.flush();
        }

        verifyAccessToken();
    }
4

1 に答える 1

2

アクセス トークンを配列として返す Facebook のバグのようです: http://developers.facebook.com/bugs/276418065796236?browse=search_5034a345a2cb15e92344737

2 番目のアクセス トークンの値を削除して、返される文字列を編集してみます。(カンマの後のすべて) をローカル セッション アクセス トークン変数に署名します。それは問題を解決するかもしれません

于 2012-08-22T21:40:57.063 に答える