Facebook "FB.Canvas.getPageInfo", как правильно его использовать - PullRequest
0 голосов
/ 28 декабря 2011

Мне нужна помощь, чтобы выяснить, как правильно использовать FB.Canvas.getPageInfo из JavaScript sdk Facebook:

https://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/

Я могу получить информацию и зарегистрировать / предупредить данные:

function getFbCanvasInfo() {
    FB.Canvas.getPageInfo(function(fbCanvasInfoObject) {
    console.log(fbCanvasInfoObject);
    });
}

$("a.GetScrollTest").live( "click", function() {
    getFbCanvasInfo();
    return false;
});

Но я не могу понять, как установить эти данные и затем применить их к другим элементам или функциям (например, как-то ниже):

$("a#test-link").each(function() {
    var fbPosition = getFbCanvasInfo().scrollTop;
    $(this).append("<em>The scroll top value is " + fbPosition + "px");
}

Я знаю, что это неправильно, и я что-то здесь упускаю.

Кстати, все эти функции находятся ниже моего асинхронного init и корня FB, который выглядит так:

<div id="fb-root"></div>
<script type="text/javascript">//<!--
    window.fbAsyncInit = function()
        {
        FB.init({
            appId: '223615011031939',
            status: true, 
            cookie: true, 
            xfbml: true, 
            oauth:true, 
            channelUrl: '[MY PROJECTS CHANNEL URL]' 
        });
        var isLoaded = true;FB.Canvas.setSize();FB.Canvas.setAutoGrow(500);            
        };

        (function() {
            var e = document.createElement('script');
            e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
        }());

        ;(function($){
            $(document).ready(function($){
                [THE JQUERY FROM ABOVE HERE]
            });
        })(jQuery);
    //--></script>

Огромная благодарность всем, у кого есть совет / опыт! Спасибо!

1 Ответ

1 голос
/ 28 декабря 2011

getPageInfo возвращает объект только для чтения. Чтобы «установить» вещи, вам нужно будет использовать предоставленные функции установки, перечисленные в документации. Один из них для установки размера холста: setSize см. https://developers.facebook.com/docs/reference/javascript/FB.Canvas.setSize/

Также вы должны очистить свой javascript, чтобы асинхронный характер работы с их API был хорошим.

$("a.GetScrollTest").live( "click", function() {
    FB.Canvas.getPageInfo(function(fbCanvasInfoObject) {
        var fbPosition = fbCanvasInfoObject.scrollTop;
        $(this).append("<em>The scroll top value is " + fbPosition + "px");
    });
    return false;
});
...