获取Facebook的JSON?

时间:2012-09-19 06:50:42

标签: facebook json

我需要一些帮助才能从Facebook获取一些JSON,基本上我需要做的就是获取状态文本并将其发布到网站。

我正在使用下面的方法,但使用此方法的access_tokens每小时都会过期。

$.getJSON('https://graph.facebook.com/SOME_ID?fields=statuses.limit(10).fields(message)&access_token=SOME_ACCESS_TOKEN', function(data) {});

请注意,我从脸谱图API资源管理器获得了上面的网址。

任何其他方式来实现我想要做的事情?

更新

我使用了FB.api,但我不确定我是否已正确完成,因为它正在向我发送此错误 “请求此资源需要访问令牌。”

window.fbAsyncInit = function() {
    FB.init({
      appId      : 'My_app_id', // App ID
      channelUrl : '//myHost.com/facebook/channel.php', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    FB.api('USER_ID?fields=statuses.fields(message)', function(response) {
      console.log(response);
    });
    // Additional initialization code here
  };

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

请注意,我用正确的值替换了(my_app_id,myHost.com和USER_ID)。

提前感谢。

2 个答案:

答案 0 :(得分:1)

假设你已经实现了Javascript SDK,我建议使用FB.api方法。

https://developers.facebook.com/docs/reference/javascript/FB.api/

答案 1 :(得分:0)

用户需要登录Facebook并允许您的应用才能调用API,将代码更新为:

window.fbAsyncInit = function() {
    FB.init({
      appId      : 'My_app_id', // App ID
      channelUrl : '//myHost.com/facebook/channel.php', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            FB.api('USER_ID?fields=statuses.fields(message)', function(response) {
              console.log(response);
            });
        }
    });
  };

有关getLoginStatus状态的更多信息:http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

您还需要询问权限user_status,查看文档了解更多详情:https://developers.facebook.com/docs/authentication/permissions/

调用FB.login时应该要求权限:

 FB.login(function(response) {
   // handle the response
 }, {scope: 'user_status'});

https://developers.facebook.com/docs/reference/javascript/FB.login/