Facebook Javascript SDK - 列出状态更新

时间:2012-01-18 21:42:54

标签: facebook facebook-graph-api facebook-fql

我正在开发一个网站,只需使用Facebook的JavaScript API列出页面状态更新。 FB API文档并不是非常有用,我甚至不确定如何从我的本地主机验证自己。

您是否可以简单地指定用户ID(本例中的页面)并列出其状态更新,前提是它是公共站点?即使单步执行也表明对FB的异步调用根本没有响应,这表明我没有正确指定我的应用ID。

这是我到目前为止所得到的:

    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'myappid', // App ID
          channelUrl : 'http://localhost:3000/channel.html', // Channel File
          status     : false, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
        });

        // Additional initialization code here
        FB.api(
            {
                method: 'fql.query',
                query: 'SELECT message FROM stream WHERE source_id=1'
            },
            function(data) {
                alert(data);
            }
        );
      };

      // Load the SDK Asynchronously
      (function(d){
         var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
         js = d.createElement('script'); js.id = id; js.async = true;
         js.src = "http://connect.facebook.net/en_US/all.js";
         d.getElementsByTagName('head')[0].appendChild(js);
       }(document));


    </script>

所以我的问题是,我可以播放任何旧页面吗?我需要一些东西来测试它真的。上面的代码不起作用,因为我设置我的应用程序的方式,我没有我要求的页面。

任何线索?

1 个答案:

答案 0 :(得分:0)

  1. 您希望在调用FB.api()调用之前使用FB.getLoginStatus()函数调用。您需要确保用户已登录。

  2. 如果页面管理员未登录,则您将调用FB.login,请求manage_pages和read_stream权限。

  3. 一旦您让页面管理员登录,您就可以致电FB.api('me/accouts', 'get', callback)以获取他们管理的网页列表。

  4. 然后在该页面列表中,将有一个页面访问令牌。对于每个页面,使用关联的页面访问令牌来查询me/feed