2011-06-24 76 views
0

我想學習如何使用CURL和Json來訪問從Facebook圖形API發送的數據。如何使用curl訪問更深層次的json樹?

我用下面的函數,拉後的數據:

function loadFB($fbID){ 
     $url="https://graph.facebook.com/".$fbID."/feed?limit=1&access_token=xxxx"; 
     $c = curl_init($url); 
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
     $page = json_decode(curl_exec($c)); 
     curl_close($c); 
     $post=reset($page->data); 

     if($post->message == '') { 

     $post_msg = '<a href="' . $post->link . '">' . $post->name . '</a>'; 

     } else { 

     $post_msg = $post->message; 

     } 

     return $post_msg; 
} 

示例JSON數據是這樣的:

{ 
"data": [ 
    { 
    "id": "xxxx", 
    "from": { 
     "name": "xxx", 
     "category": "xxx", 
     "id": "xxx" 
    }, 
    "picture": "xxxxxxxxx", 
    "link": "xxxxxxx", 
    "name": "Event name goes here", 
    "properties": [ 

     { 
      "text": "Friday, July 15, 2011 at 4:00pm" 
     }, 
     { 
      "text": "Venue Name" 
     } 
    ], 
    "icon": "http://static.ak.fbcdn.net/rsrc.php/v1/yW/r/r28KD-9uEMh.gif", 
    "type": "link", 
    "object_id": "xxx", 
    "created_time": "2011-06-23T06:46:17+0000", 
    "updated_time": "2011-06-23T06:46:17+0000", 
    "likes": { 
     "data": [ 
      { 
       "name": "xxxx", 
       "category": "xxx", 
       "id": "xxxx" 
      } 
     ], 
     "count": 1 
    } 
    } 
], 
"paging": { 
    "previous": "xxxxx", 
    "next": "xxx" 
} 
} 

既然這樣,我可以檢索網頁的消息更新,或者如果它的事件我可以檢索事件的名稱和鏈接。

但是如果我想檢索說事件日期或地點名稱怎麼辦?它屬於另一層「屬性」。

使用我的代碼到目前爲止,我可以通過$ post-> message訪問第一層次的事物,但是當我嘗試使用$ post-> properties-> text時這不起作用 - 所以我不明白這工作。最重要的是,在'屬性'中,有2個'文本',這增加了我對如何訪問這些東西的困惑。

任何指針?在上面的數據

回答

2

$post->properties是陣列,使得:

$post->properties[0]->text; 
0

屬性是索引數組,使要$post->properties[x].text其中x爲0的第一個項目和1中的第二項,等等...

相關問題