2012-04-19 5 views
0

Вот код, который бросает выше ошибки:FB API/меня/друзья «Ошибка: недопустимый аргумент поставляется для Еогеаспа()» при использовании друзей массива

$friend_json = $facebook->api('/me/friends'); 
    $friends = array(); 
    foreach($friend_json->data as $friend) { 
     $friends[] = $friend->name; 
    } 
    $friend_list = json_encode($friends); 

Я знаю, этот код работать, поскольку это не было бросая эту ошибку, когда я делал тот же запрос, но при использовании прямого URL-адреса API Graph с file_get_contents();. SDK был установлен правильно, поскольку он используется для успешной передачи пользовательских данных в одном скрипте.

+0

У вас есть друзья? : P К сожалению, не смог устоять. Попробуйте 'var_dump ($ friends_json);' и проверьте, что он содержит. –

ответ

0

Несмотря $user_friends быть массив из массива, который в PHP, насколько мне известно, рассматривается как объект, он не любил меня, используя '->' чтобы получить доступ к его массиву, поэтому вместо этого я использовал квадратные скобки. Спасибо за вашу помощь.

Рабочий код: $ friend_list = $ facebook-> api ('/ me/friends');

$friends = array(); 
foreach($friend_list['data'] as $friend) { 
    $friends[] = $friend['name']; 
} 
$friend_list = json_encode($friends); 
0

Ответ от Facebook::api является Array:

foreach($friend_json['data'] as $friend) { 
    $friends[] = $friend->name; 
} 

Это также лучше, чтобы добавить простую проверку на наличие ошибок.

if ($friend_json && isset($friend_json['data']) 
    foreach($friend_json['data'] as $friend) { 
    $friends[] = $friend->name; 
    } 
0

Попробуйте это,

$user_friends = $facebook->api('/me/friends'); 
$friends_details = json_decode(file_get_contents('https://graph.facebook.com/me/friends?access_token=<your access token>']), true); 
for($i=0;$i<sizeof($friends_details);$i++){ 
    $friends_name[] = $friends_details['data'][$i]['name']; 
}