我正试图从Facebook页面获取一些json feed。这是我的代码:
var myurl = "https://www.facebook.com/feeds/page.php?id=111222778066&format=json";
$.ajax({
url: myurl,
type: 'GET',
dataType: "jsonp",
success: function(json){
...
}
});
问题是我一直收到这个错误:(在page.php:2中)
Uncaught SyntaxError: Unexpected token :
非常感谢任何帮助...
答案 0 :(得分:0)
这是在尝试查询页面的RSS源。 RSS源正式被弃用。根据页面创建日期的不同,有些页面仍然存在,但您不能依赖它们,也不能检测它们是否存在。
此页面似乎有一个Feed - 现在,因为URL返回数据。
您的错误是语法错误。看看你的控制台,看看它来自哪一行。无法保证意外冒号位于您发布的代码段中。
为了将来证明您的脚本,您最好的办法是创建一个应用程序,并通过此API通过Graph API查询页面:
https://graph.facebook.com/111222778066/feed?access_token=YOUR_APP_ACCESS_TOKEN
如果您作为应用进行身份验证,则可以获得永久访问令牌。使用JavaScript SDK将为您自动执行此过程。
这些文章可以帮助您入门:
答案 1 :(得分:0)
不像@cpilko提到的那样,RSS Feed被弃用也不是问题。您的问题是,Facebook Feed不支持jsonp,它依赖于加载数据网址,因为javascript包含回调,而只返回普通json,atom或rss2。相反,您需要通过其他内容代理Feed,例如您自己的后端或googles feed api:
<script>
function jsapi_loaded(){
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed(
"https://www.facebook.com/feeds/page.php?format=rss20&id=111222778066"
);
feed.setNumEntries(10);
feed.load(function(result) {
if (!result.error) {
console.log(result);
}
});
}
google.setOnLoadCallback(initialize);
}
</script>
<script src="https://www.google.com/jsapi?callback=jsapi_loaded" async></script>