2011-10-24 3 views
0

jQuery/javascriptの新機能で、 'userData'オブジェクトを公開するのに苦労しています。 Facebookコールは正常に動作します。 Facebookの呼び出しの中で、コンソールは 'userData'オブジェクトを私が望むように記録します。しかし、私はオブジェクトを公開する方法を知らないので、再利用することができます。現時点のコンソールログでは、 'userData'が定義されていないことが報告されます。誰かが私が間違っていることを知っていますか?前もって感謝します! ロンFacebook API呼び出しオブジェクトの公開オブジェクトを現時点では未定義にします

FB.api('/me?fields=id,first_name,last_name,picture', function(userProfile) { 
    var userData = { 
    first_name : userProfile.first_name, 
    last_name : userProfile.last_name, 
    userid  : userProfile.id, 
    picture  : userProfile.picture 
};    

return userData; 
}); 
console.log(userData); 

答えて

1

それはあなたのuserDataの前でvarキーワードは、コールバック関数の中にスコープされていることです。それをグローバル変数にアサインし、グローバルに使用することができます。私が実際にあなたのシステムを構築することを実際には勧めているわけではありませんが、デバッグには便利です。

var globalUserData; 

FB.api('/me?fields=id,first_name,last_name,picture', function(userProfile) { 
    globalUserData = { 
     first_name : userProfile.first_name, 
     last_name : userProfile.last_name, 
     userid  : userProfile.id, 
     picture  : userProfile.picture 
    }; 

    console.log(globalUserData); 
    // do more stuff with the user data here. 
}); 

はまたすぐ後はそれがコールバックを終了し、発射の前に長くなります FBのAPI呼び出しを、開始console.log実行することに注意してください。

+0

フィードバックいただきありがとうございます。しかし、私はまだそれを動作させることはありません。私はあなたがconsole.logを指摘するのを見ます。しかし、私はこれを次のように置き換えます: $( "#showme")。prepend(globalUserData.first_name); ...私はまだ何も見ません。どうして?? – franksprings

+0

私は自分の答えを更新しました。それを試してください。 – Leopd

関連する問題