Я пытаюсь получить список всех имен & ID людей, которые на самом деле собираются на мероприятие, которое я создаю. Получение списка с использованием php graph api для facebook было простой частью и, похоже, работает.
Код (php) получаемых данных:
// ПОЛУЧИМ ПОСЕТИТЬ
$getattending = "/" . $event_id . "/attending?fields=name,id"; $req_events = new FacebookRequest($session, 'GET', $getattending); $req_response = $req_events->execute(); $data_array = $req_response->getGraphObject()->asArray(); $counter = array_map("count", $data_array); $count = $counter['data']; echo "Attending: $count<BR>"; echo "<PRE>"; print_r($data_array); echo "</PRE>";
Результат:
Array (
[data] => Array ( [0] => stdClass Object ( [name] => Thierry Martens [id] => 788923242 ) [1] => stdClass Object ( [name] => Lisa Mario Laurier [id] => 708876902536391 ) [2] => stdClass Object ( [name] => Ramy Mahfoudhi [id] => 735036479911364 ) [3] => stdClass Object ( [name] => Jeremy Verriest Duroisin [id] => 783108468420824 ) [4] => stdClass Object ( [name] => Jonas En Svetlana Laurier [id] => 773139856081632 ) [5] => stdClass Object ( [name] => Maxime Demerliere [id] => 849400761761008 ) [6] => stdClass Object ( [name] => Jeremy Beauchamp [id] => 10204174155667109 ) [7] => stdClass Object ( [name] => Sari Jens Delcourte Delusinne [id] => 10204086515874904 ) [8] => stdClass Object ( [name] => Pieter Marysse [id] => 10204911283045115 ) [9] => stdClass Object ( [name] => Patrick Vanden Bosschelle [id] => 10202907209181148 ) )
НО у меня проблемы с тем, чтобы на самом деле собрать данные сами; Мне просто нужно имя и идентификатор в простом массиве или списке, чтобы я мог использовать его в оставшейся части скрипта. Есть идеи?
Мой второй вопрос — у php graph api, похоже, есть элемент «/ eventnr / автосекретарь» для графа 2.1; показ nr сопровождающих на ваше мероприятие; но когда я на самом деле вызываю его, я получаю сообщение об ошибке, в котором говорится, что мне нужно использовать график 2.1, пока я загружаю последнюю версию php sdk и, похоже, не могу найти способ изменить эту версию. Этот вопрос не так важен, как приведенный выше; но если это сработает, мне понадобится меньше кода 🙂
Надеюсь, вы, ребята, можете помочь мне 🙂
!!!! ПОНЯЛ !!!!
Посмотрите дальше, и решения кажутся довольно простыми:
for ($x = 0; $x <= $count; $x++) { $names[$x] = $data_array['data'][$x]->name; $ids[$x] = $data_array['data'][$x]->id; }
Вывод:
массив $ names:
Массив ([0] => Тьерри Мартенс [1] => Лиза Марио Лорье [2] => Рами
Махфудхи [3] => Джереми Верриест Дюруазен [4] => Джонас Эн Светлана
Лорье [5] => Максим Демерлиер [6] => Джереми Бошан [7] => Сари
Дженс Делькурт Делусинн [8] => Питер Марисс [9] => Патрик Ванден
Bosschelle [10] =>)массив $ ids:
Array ([0] => 788923242 [1] => 708876902536391 [2] => 735036479911364
[3] => 783108468420824 [4] => 773139856081632 [5] => 849400761761008
[6] => 10204174155667109 [7] => 10204086515874904 [8] =>
10204911283045115 [9] => 10202907209181148 [10] =>)
Это как:
$dataArray = $data_array['data'];
$firstPerson = new $dataArray[0];
echo $firstPerson->name;
echo $firstPerson->id;
Может быть, вам это нужно, хотя:
foreach($data_array['data'] as $a){
$o = new $a; $names[] = $o->name; $ids[] = $o->id;
}
// $names is Array of names
// $ids in Array of ids
Я добавил ваш код, но результат следующий (пустые массивы)
добавлен код:
foreach($data_array['data'] as $a) { $o = new $a; $names[] = $o->name; $ids[] = $o->id; } echo "FIRST ELEMENT - \$data_array['data'][0]: <BR>"; print_r($data_array['data'][0]); echo "<BR><BR>"; echo "\$names array: <BR>"; print_r($names); echo "<BR><BR>"; echo "\$ids array: <BR>"; print_r($ids); echo "<BR><BR>";
Результат эха & print_r:
ПЕРВЫЙ ЭЛЕМЕНТ — $ data_array [‘data’] [0]:
stdClass Object ( [name] => Thierry Martens [id] => 788923242 )
массив $ names:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => )
массив $ ids:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => )