API Graph Facebook: анализ выходных данных - PullRequest
4 голосов
/ 30 ноября 2010

Я пытаюсь получить имена моих друзей, используя FB Graph API, с помощью этого вызова:

$friends = file_get_contents('https://graph.facebook.com/me/friendsaccess_token='.$session["access_token"]);

echo "Friends : $friends\n";

Это дает мне список формы:

{"data":[{"name":"ABC XYZ","id":"12212839"},{"name":"PQR GHI","id":"5004678"}]}

Я хочу иметь возможность хранить только ИМЕНА в массиве. Как мне использовать $ friends, чтобы получить имена? Кажется, что-то вроде $ friends ['name'] не работает.

Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

5 голосов
/ 30 ноября 2010
$friends = json_decode($friends);
foreach($friends['data'] as $friend)
{
     echo $friend['name'];
}

Возвращение - это объект json, вам нужно его декодировать. Хотя я настоятельно призываю вас использовать SDK, такой как http://github.com/facebook/php-sdk/

Если это не сработает, попробуйте:

$friends = json_decode($friends);
foreach($friends->data as $friend)
{
     echo $friend->name;
}
0 голосов
/ 14 января 2017

Вот что я сделал, чтобы получить информацию о сообщениях ... сырая, но она работает.Обратите внимание, что акции любят комментарии и реакции на один уровень глубже в объекте JSON

$posts = json_decode($output); // from FB Graph v2.8 API call
foreach($posts->data as $post)
{
  echo "MESSAGE: ", $post->message, "<br>";
  echo "NAME: ", $post->name, "<br>";
  echo "TYPE: ", $post->type, "<br>";
  echo "ID: ", $post->id, "<br>";
  echo "LINK: ", $post->link, "<br>";
  echo "PERMALINK: ", $post->permalink_url, "<br>";
  echo "CREATED: ", $post->created_time, "<br>";
  if($post->shares->count == "") { $shares = "0"; } else { $shares = $post->shares->count; }  
  echo "SHARES: ", $shares, "<br>";
  if($post->reactions->summary->total_count == "") { $reactions = "0"; } else { $reactions = $post->reactions->summary->total_count; }  
  echo "REACTIONS: ", $reactions, "<br>";
  if($post->comments->summary->total_count == "") { $comments = "0"; } else { $comments = $post->comments->summary->total_count; }  
  echo "COMMENTS: ", $comments, "<br>";
  if($post->likes->summary->total_count == "") { $likes = "0"; } else { $likes = $post->likes->summary->total_count; }  
  echo "LIKES: ", $likes, "<br>";
  echo "<br><br>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...