1

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

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

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

请注意,我从 facebook graph API explorer 获得了上面的 URL。

还有其他方法可以实现我想要做的事情吗?

更新:

我使用了 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)。

提前致谢。

4

2 回答 2

1

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

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

于 2012-09-19T07:15:05.433 回答
0

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

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/

于 2012-09-19T08:29:23.397 回答