2011-05-01 53 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