私のアプリケーションには、次のような関数があります。
getProfile = function() {
FB.api('/me', function(response) {
console.log(response);
});
return false;
};
これは、JavaScript を介して Facebook Graph API から「me」オブジェクトを要求し、通常のリンクの onClick イベントにアタッチするか、コンソールから直接呼び出すと期待どおりに動作しますが、Facebook から呼び出そうとすると、ログインボタン:
<fb:login-button onlogin="getProfile()">
Get Profile
</fb:login-button>
Facebook からログアウトし、その後ダイアログからログインした場合にのみ、期待どおりの応答が得られます。すでにログインしているときにボタンをクリックすると、次のようになります。
そして、応答をブラウザーにプッシュすると、次のようになります。
getProfile = function() {
FB.api('/me', function(response) {
console.log(response);
var
profile = document.getElementById('profile'),
p = document.createElement('p');
p.innerHTML = response.first_name;
profile.appendChild(p);
});
return false;
};
もちろん、私の名前が入った 2 つの段落があります。
誰かが私が間違っていることを見つけることができますか? これまでのところ、私のグーグルでは、これは SDK がログイン イベントを処理する方法 (ページの読み込みごとに起動) に関連していると確信していますが、アプリケーション コードでそれをどのように説明するべきかわかりません。