http://www.gendama.jp/

IE/SafariでFacebookアプリの無限reload対策



image
Creative Commons License photo credit: studio.yao

IEとiPhoneを含むSafariで、Facebookアプリでログインセッションを受け取れず(getSessionがNULL)、iFrameの中が無限reloadされる不具合への対策です。

gitサンプルコードの問題なんだが、あまりに情報がなくて苦労しましたよ。

IE対策は

header('p3p: CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"');

といったHTTPヘッダを出力するのみ。この際、IEはすべてRejectしてやりたい気持ちを抑えつつ(^^;
◆情報元
http://forum.developers.facebook.net/viewtopic.php?id=73645

そしてSafari対策はgitのサンプルにあるFB.Event.subscribe(‘auth.login’, function() を以下に差し替え。

FB.Event.subscribe('auth.login', function(response)
{
    if(navigator.userAgent.toLowerCase().indexOf("safari") > -1) {
        if (response.session) {
            $('body').prepend("<form id='safariFix'></form>");
            $('#safariFix')
                .attr('method', 'POST')
                .attr('action', location.href)
                .append('<input type="hidden" name="session" id="safariFix_session" />');

            $('#safariFix_session').attr('value', JSON.stringify(response.session));

            $('#safariFix').submit();
        }
    } else {
        window.location.reload(); // Whenever the user logs in, we refresh the page
    }
});

◆情報元
http://forum.developers.facebook.net/viewtopic.php?id=73645

Syntax Highlighter ComPressプラグインを入れました!
あと前に入れたまま放置していたCCライセンスのイメージ写真を引用できるプラグインを使ってみました。

http://www.gendama.jp/
Google Adsense
Search
人気の記事
MicroAd
最近の記事
最近のコメント