2012-03-05 14 views
0

Facebookにログインしたりログアウトしたりする次のコードがありますが、ユーザーの名前が表示されません。現時点では、私がそれをつかむことに失敗したか、単に表示に失敗したかわからないそれ。Facebookのユーザー名を取得できないのはなぜですか?

<!DOCTYPE html><html lang="en"><head><title>New Document</title><link rel="stylesheet" href="/stylesheets/style.css"><div id="fb-root"></div><script>window.fbAsyncInit = function() { 
    FB.init({ 
    appId : 'my_api_key', 
    status : true, 
    cookie : true, 
    xfbml : true, 
    oauth : true, 
    }); 
    FB.Event.subscribe('auth.login', function() { 
    window.location = "http://my.site/doc"; 
    }); 
    FB.Event.subscribe('auth.logout', function() { 
    window.location = "http://my.site/"; 
    }); 
    FB.api('/me', function(user) { 
    if (user) { 
     var image = document.getElementById('image'); 
     image.src = 'https://graph.facebook.com/' + user.id + '/picture'; 
     var name = document.getElementById('name'); 
     name.innerHTML = user.name; 
    } 
    }); 
}; 
(function(d) { 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src="//connect.facebook.net/en_US/all.js"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
}(document)); 

</script></head> 

+2

代わりに '警告(user.name); 'name'変数には、上の2行を検索したdom要素が含まれています。 – zerkms

+0

そのアラートを残すことさえも、テストしただけではありませんでした。それをuser.nameに変更しても効果はありません。 – tsvallender

+0

あなたのHTMLに ''がありますか? –

答えて

0

あなたは

FB.api('/me', function(user) { if (user) {

に来るとき、あなたがエラーコードのいずれかまたはのためにチェックしている場合、私は表示されませんユーザがログインしていなくても。

あなたがログインしていることを確認するために呼び出す)(FB.getLoginStatusの内側にあなたのFB.apiコールを囲む必要があります。

+0

私はこれをやっているべきだと分かっていて、それを追加しますが、確かに私がログインしていても、それでも私に名前は付けられません。 – tsvallender

+0

私はここにあるコードをチェックしてください:http://jsfiddle.net/dmcs/R4g47/3/これはあなたのために働くはずです。デモを実行するには[実行]をクリックしてください。アプリを承認します。次に[実行]をクリックすると、/ meコールの結果が表示されます。 – DMCS

0
var image = document.getElementById('image'); 
    image.src = 'https://graph.facebook.com/' + user.id + '/picture'; 
    var name = document.getElementById('name'); 
    name.innerHTML = user.name; 
    alert(name) 

はあなたが

<img id='image' /> 
    <div id='name'></div> 

を持っている必要があることを述べていますあなたのマークアップ(bodyタグ間)

+0

ええと、私はイメージが欲しいまでは違いはないとは思っていませんでしたが、名前とイメージが「未定義」になっています。ビットクローザーありがとう! – tsvallender

+0

こんにちは@tsvallender、 fb関連のすべてのjsコードを ''の後ろに置きます。 ヘッド部に '

'を入れるにはどうすればいいですか? – Jashwant

関連する問題