2013-02-12 4 views
0

Я использую открытый график Facebook как формат json feed, чтобы получить имя страницы после того, как я предоставил токен доступа в URL-адресе.Невозможно прочитать json-канал с помощью json_decode

вот мой код:

$get_pages = file_get_contents("https://graph.facebook.com/me/accounts?access_token=".$_POST['access_token']); 
$get_pages = json_decode($get_pages); 

foreach($get_pages->data as $page){ 
    echo $page[name]; 
    } 

Я пытаюсь повторить имя страницы. Код Json, что Facebook обеспечивают выглядит так:

{ 
     "data": [ 
      { 
      "category": "website", 
      "name": "jjj", 
      "access_token": "jjj", 
      "id": "jjj", 
      "perms": [ 
       "jjj", 
       "jjj", 
       "jjj", 
       "jjj", 
       "jjj", 
       "jjj" 
      ] 
      }, 
      { 
      "category": "Community", 
      "name": "ggg", 
      "access_token": "ggg", 
      "id": "ggg", 
      "perms": [ 
       "ggg", 
       "ggg", 
       "ggg", 
       "ggg", 
       "ggg", 
       "ggg" 
      ] 
      } 
], 
    "paging": { 
     "next": "hhh" 
    } 
} 

Я получаю эту ошибку:

catchable fatal error: object of class stdclass could not be converted to string in 
with this line of code :$get_pages = json_decode($get_pages); 

, что я делаю неправильно здесь?

+2

Вы смешивания массива и объекта доступа. Используйте 'json_decode ($ data, TRUE)', чтобы получить результат all-array для '[" page "]' в foreach и '[" name "]' для записей. Else use '-> name'. См. Также http://array.include-once.org/ – mario

+0

Вы уверены, что это правильный номер строки? Я тестировал его с вашими данными, и он работал без ошибок. (Не могу поверить, что ошибка в этой строке) – hek2mgl

+0

Я решил свой вопрос. См. Мой ответ ниже. –

ответ

0

я решил его :) Я изменил код так:

$get_pages = file_get_contents("https://graph.facebook.com/me/accounts?access_token=".$_POST['access_token']); 
$get_pages = json_decode($get_pages, TRUE); 
echo '<select id="select_page">'; 
foreach($get_pages[data] as $page_name){ 
echo '<option>'.$page_name[name].'</option>'; 
} 
echo '</select>'; 
Смежные вопросы