api('/me'... 呼び出しが getLoginStatus ブロック内で機能し、ブロックの外で失敗する理由を誰かが説明できますか?
(私が失敗すると言うと、response.nameは未定義であり、他のすべてのものと同様です)
fbAsyncInit コード内と、init が完了した後にトリガーされると想定されるコールバックでこれを実行しようとしましたが、どちらの場合も、api('/me'... 呼び出しは getLoginStatus ブロックでのみ機能します。
どちらの場合も、 getLoginStatus() ブロック内で動作するように api('/me' のみを取得できます。
注: ユーザーが接続されていないという問題はありませんでした。
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.info("connected");
FB.api('/me', function(response) {
// this works
console.info("Name: "+ response.name + "\nFirst name: "+response.first_name+"");
});
} else if (response.status === 'not_authorized') {
console.info("bad");
}
});
FB.api('/me', function(response) {
// response.name == 'undefined'
console.info("Name: "+ response.name + "\nFirst name: "+response.first_name+"");
});