正在加载facebook wall feed JSON问题

时间:2012-06-07 09:40:09

标签: javascript facebook json jquery

我正在尝试在我的网站的客户端加载带有jQuery的facebook墙上的Feed。 我用于facebook请求的提要是:

  

http://www.facebook.com/feeds/page.php?format=json&id=40796308305

我尝试了以下方法:

1

$.getJSON('http://www.facebook.com/feeds/page.php?format=json&id=40796308305',function(data){
   console.log(data)

});

返回错误:

  

XMLHttpRequest无法加载http://www.facebook.com/feeds/page.php?format=json&id=40796308305。 Access-Control-Allow-Origin不允许原点http://xxxx.local

2

$.ajax({
    url: 'http://www.facebook.com/feeds/page.php',
    type: 'GET',
    dataType: 'json',
    data: {
        id: '40796308305',
        format: 'json'
    },
    success: function(data, textStatus, xhr) {
        console.log(data);
    }
});

返回相同的错误。

3

$.ajax({
    url: 'http://www.facebook.com/feeds/page.php',
    type: 'GET',
    dataType: 'json',
    data: {
        id: '40796308305',
        format: 'jsonp'
    },
    success: function(data, textStatus, xhr) {
        console.log(data);
    }

});

返回:

  

Uncaught SyntaxError:意外的令牌:

似乎正在解析Feed。

如何加载facebook json feed以便我可以像访问数组一样访问它?

3 个答案:

答案 0 :(得分:1)

由于跨域策略限制,您无法在客户端执行此操作。

您可能需要为该数据创建自己的代理(页面数据的此端点不支持JSONP,并且不能与callback参数一起使用)

答案 1 :(得分:0)

将数据类型从json更改为jsonp,因为它是跨域调用

答案 2 :(得分:0)

我看到这个帖子差不多6个月了,所以希望现在还不算太晚。

function fbInfo(user, id) {
    var jurl = "https://graph.facebook.com/"+user+"&callback=?";
    console.log(jurl);
    $.getJSON(jurl, function(data) {
           //do stuff
});
}

我在html页面中调用该函数并将facebook页面的用户名(“user”)传递给url变量“jurl”

使用$ .getJSON方法,然后随意操作数据。

这绝对有效,因为我正在使用它将商业信息从Facebook页面提取到我的网站。