2011-05-01 110 views
0

我有一个简单的PHP代码,通过JSON获取Facebook图形API的值(喜欢某个fanpage的总数)。它对于绝大多数粉丝页面来说工作得很好,但对于3个(我跟踪的17个粉丝页面),它无法读取和打印该值。正在获取Facebook图形API JSON值

我不明白问题在哪里,因为我想要获取的数据是公开可用的,并且相同的代码适用于所有页面。

下面是一个粉丝页面打印正确的值ID为214014840762代码:

<?php  
$currsiteurl = 'http://graph.facebook.com/214014840762'; 
$graph = json_decode(file_get_contents($currsiteurl)); 
$currnofans = $graph->likes; 
echo "Number of likes: ".$currnofans; // prints out 107936  
?> 

但如果我只是ID更改为160788560626000或者167134649991034相同的代码不工作了,它不打印什么。

在此先感谢!

+1

也许是页面的隐私设置? – Nicolas78 2011-05-01 22:31:45

回答

2

我不知道这些网页是什么或他们在Facebook上的URL是什么,所以我无法验证这一点,但有可能您的网页未发布(可能不太可能)或(可能更多可能)是年龄限制。如果受年龄限制,Facebook图表不允许您访问页面的信息。不幸的是,如果你通过一个Facebook应用程序访问令牌,甚至超过18岁的用户访问令牌,情况就更是如此。这非常愚蠢,至少有5个关于bugs.developers.facebook的bug报告。 com为它。

更新2011年6月13日
近日,Facebook的提出,要求您使用有效的用户访问令牌,了解有关网页信息的更新。这是一个可怕的变化,imo,但它就是这样。如果没有有效的用户访问令牌,您将从不是基本信息(根,http://graph.facebook.com/<page_id>)或photosalbums端点的每个端点获得falseerror响应。

所以,如果你要求的任何其他端点(postsfeedvideosstatuses,等等),你需要确保你提供一个有效的用户访问令牌来访问它们。

-1

如果我是正确的,然后是结果的阵列,而不是一类 所以尝试类似$图[“喜欢”]

+0

考虑到它适用于以相同方式构建的其他页面,我不明白这是怎么回事。 – 2011-06-26 16:11:40