0

Facebook API からアルバムの写真を取得し、それらを石造りのスタイルで配置しています。API 関数を実行するように設定しました。ボタンをクリックすると、石積み関数が実行され、正常に動作します。今私がやりたいことは、すべての画像がダウンロードされた後、次のように石積みを自動的に実行することです:

function fbAPI() {
  //downloading photos and placing them in a div
  masonryFunction();
}

function masonryFunction(){
  //run the masonry plugin
}

私が遭遇する問題は、fbAPI が処理を完了する前に masonryFunction が実行されるため、動作が妨げられることです (最初にすべての写真をロードする必要があります)。fbAPI はユーザー入力の後まで起動されないため、ページが読み込まれたときに単に masonryFunction を実行することはできません。私に何ができる?

4

1 に答える 1

0

FB ログイン関数のコールバック関数で fbAPI() 関数を呼び出します。

例えば、

FB.login(function(response) {
    if (response.authResponse) {
        facebookLoggedIn();
    } else {
        alert('User cancelled login or did not fully authorize.');
    }
});

function facebookLoggedIn() {
    fbAPI();
}

または、FB auth.statusChange イベントにサブスクライブします。

FB.Event.subscribe('auth.statusChange', function(response) {
    facebookStatusChange(response);
});

function facebookStatusChange(response) {
    if (response.status === 'connected') {
        uid = response.authResponse.userID;
        accessToken = response.authResponse.accessToken;
        facebookLoggedIn();
    } else if (response.status === 'not_authorized') {
        // the user is logged in to Facebook, 
        // but has not authenticated your app
    } else {
        // the user isn't logged in to Facebook.
    }
}
于 2013-06-27T22:14:41.340 に答える