2012-07-04 61 views
-2

不知道我是否真的這樣做了,但從我在YouTube上觀看的教程中獲得了一小段代碼,不幸的是,這個人從未發佈第2或3部分,因此只剩下他在第一部視頻中寫的內容。如何轉換Facebook圖表JSON輸出?

我一直在試圖訪問所有的公共帖子可用,並看到通過鏈接訪問它們的一個簡單的方法:https://graph.facebook.com/search?q=i通過我的考試&類型=張貼&區域= EN_GB

它呈現什麼似乎是一個大量的信息,但我怎樣才能使用PHP處理這種明顯的JSON輸出到可理解的信息?我已經看到它在類似的網站上完成,這些網站在互聯網上製造浪潮,並且想自己嘗試。

這可能使用下面的代碼:

$fbquery = "https://graph.facebook.com/search?q=i hate my boss&type=post"; 
$fb = file_get_contents($fbquery, 'rb'); 
$fbarray = json_decode($fb, true); 
echo $fbarray['message']; 

還是我用的是什麼地方的問題呢?請記住,其公開信息可用並使用任何地址欄中的鏈接將生成並輸出,而無需用戶登錄或使用訪問令牌。

感謝您的任何幫助和讚賞!

戴夫。

+0

只要您不確定變量或對象中包含的數據結構,請使用var_dump/print_r。如果這仍然不能幫助您理解如何訪問各個數據塊,請首先閱讀一些PHP初學者教程。 – CBroe

回答

0

json_decode之後,你得到一個對象。

如果您執行$ fbarray-> data,您將獲得一組對象。 循環每個對象並檢查其類型。

for(key in $fbarray->data){ 
    $element = $fbarray->data[key]; // you get each element. 
    if($element->type =="photo") // check for different types 
    { 
    // display as photo. 
    echo '<img src="$element->picture">'; 
    } 
    if($element->type =="status") 
    { 
    // display message. 
    echo $element->message; 
    } 
} 

您可以使用網上JSON編輯器,如jsonedtor獲取樹型視圖。這有助於瞭解json的樹結構。

+0

嗨,是的,這是偉大的,除了仍然不知道該怎麼做之後,因爲顯示的信息被設置爲你說的像一棵樹,所以說我想回聲從帖子的ID或消息,我怎麼會從它$元素? –

+0

更新的答案看看是否有幫助。 –

0

這裏有幾個問題。 1)你應該urlencode你的搜索字符串。其次,$fbarray是一個對象。你不會得到一件物品。試試這個代碼:

$str = "i hate my boss"; 
$str = urlencode($str); 
$fbquery = "https://graph.facebook.com/search?q={$str}&type=post"; 
$fb = file_get_contents($fbquery, 'rb'); 
$fbarray = json_decode($fb, true); 
foreach ($fbarray as $item) { 
    echo $item['message']; 
} 

爲了測試這樣的公開查詢,您可以將您$fbquery URL粘貼到瀏覽器的地址欄,看看你得到返回的數據。

+0

多數民衆贊成在輝煌和工作在一定程度上,但是,如果你看它時,進入一個地址欄,並按下輸入,其拆分成幾個部分,我試圖使用$ fbarray->數據,但沒有那麼工作,那麼我嘗試了$ fbarray ['data']獲取一些信息,但仍然有部分是單獨的數組,任何想法我將如何繼續這些? –

+0

AS @CBroe建議您可以使用'print_r($ fbarray)'查看返回數據的完整表示形式。這將告訴你如何在PHP中獲取該變量。例如,您可以將上面的'echo'語句修改爲:'printf('%s'%s',$ item ['from'] ['name'],$ item ['message']);' – cpilko