私は Facebook Connect アプリに取り組んでいます。接続ボタンが稼働しており、ユーザーは Facebook 経由で正常に認証できます。しかし、プロフィール写真と名前を XFBML で表示するのに問題があります。これが私がやっていることです:
<script type="text/javascript">
function fb_login_handler() {
var userbox = document.getElementById( "fb_userbox" );
userbox.innerHTML =
"<span>"
+ "<fb:profile-pic uid=loggedinuser facebook-logo='true'></fb:profile-pic>"
+ "Welcome, <fb:name uid=loggedinuser useyou='false'></fb:name>"
+ "</span>";
FB.XFBML.Host.parseDomTree();
}
</script>
...
<div id="fb_userbox">
<fb:login-button onlogin="fb_login_handler();" autologoutlink="1" length="long"></fb:login-button>
</div>
...
<!-- Facebook Connect initialization -->
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript">
</script>
<script type="text/javascript">
FB.init("[MY_API_KEY]", "/xd_receiver.htm",
{ "ifUserConnected" : fb_login_handler } );
</script>
[接続] ボタンで正常にログインでき、Javascript コールバックが実行されますが、最終的には次のようになります。
http://www.friedo.com/fbuserbox.png
そのため、写真も名前も入力されていません。の代わりに FB プロファイル ID をハードコーディングしても、同じことが起こりますloggedinuser
。
更新:タグfacebook-logo
から属性をオフにすると、(ランダムにいじった後)動作させることができるようです。fb:profile-pic
false に設定 (または削除) すると、ユーザー ボックスが正しくレンダリングされます。しかし、Facebookのロゴも機能する必要があります。:(