1

我正在为我的 iframe 画布应用程序异步加载 JavaScript SDK。

我知道 fbml 已被弃用并被逐步淘汰,但 xfbml 还可以吗?

我还能使用 fb:name 例如。<fb:name uid="2901279">?

例如,有没有更好的方法为用户打印 100 个朋友的姓名?

4

2 回答 2

2

您需要开始使用 Graph API,这里有一个快速工作示例来帮助您入门:

<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Facebook Javascript SDK</title>
</head>
<body>
    <div><fb:login-button perms=""></fb:login-button></div>

    <div id="friends"></div>


    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId   : 'APP_ID',
          cookie  : true,
          status  : true,
          xfbml   : true 
        });

        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });

        FB.api('/me/friends',function(resp) {
            if(resp && resp.data.length) {
                var html = '<ul>';
                for(var i=0; i<resp.data.length; i++) {
                    html += '<li><img src="http://graph.facebook.com/' + resp.data[i].id + '/picture?type=small" />' + resp.data[i].name + '</li>';
                }
                html += '</ul>';
                document.getElementById('friends').innerHTML = html;
            }
        });
      };

      (function() {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>
</body>
</html>

只需替换为您的应用程序 ID,您就可以开始了!

于 2011-05-14T23:24:58.007 回答
1

你是对的,你可能不应该再使用fbml了,但是来自“社交插件”的所有标记仍然会受到鼓励(即like button)。

不管它是否被弃用,我更喜欢完全控制我的应用程序的布局 - 而不是使用<fb:name...标签,您可以从“http://graph.facebook.com/UID/friends”获取所有朋友列表并解析结果JSON。(在 PHP-SDK 中:)$fb->api("/me/friends");

于 2011-05-14T22:43:17.737 回答