Используя графический API Facebook, я пытаюсь получить количество общих друзей, которых есть у 2 пользователей. Тем не менее, я получаю несколько друзей одного из них.
Вот мой код:
<?php $mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$fb_id."/mutualfriends/".$other_fb_id."?".$access_token), true); $mutual_friends = $mutual_array['data']; $mutual_number = count($mutual_friends); ?>
$ mutual_number дает количество друзей facebook друзей $ other_fb_id. И когда я пытаюсь использовать print_r $ взаимные друзья, он дает всем своим друзьям.
Кто-нибудь знает, что здесь происходит? Благодарю.
В вашем коде выше $ fb_id должен быть в настоящее время идентификатор пользователя для входа в систему или он должен быть вашим пользователем приложения. Facebook api не позволяет получить общих друзей любого пользователя xyz, пока они не присоединились к вашей заявке.
Проверьте его в fb explorer
В качестве альтернативы, если у вас есть друзья обоих пользователей, вы можете использовать функцию array_intersect PHP для получения общих идентификаторов из обоих друзей.
$result = array_intersect($user1_friends_array, $user2_friends_array); print_r($result);
Ответ прост. Единственное, что вы делаете, это изменить порядок размещения идентификатора facebook и друга facebook id:
$mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$other_fb_id."/mutualfriends/".$fb_id."?".$access_token), true);
Похоже, что оба идентификатора пользователя одинаковы. Вы на 100% уверены, что они не?
Это api-ошибка в facebook. Несмотря на то, что информация является симметричной, чтобы получить количество общих друзей, вы должны использовать токен доступа текущего пользователя (пользователя a), а не другого пользователя, с которым вы проверяете.
С графиком api это делается путем запроса:
мне / mutualfriends? Пользователь = SOME_USER_ID
если у вас и у SOME_USER_ID есть друзья, вы получаете список друзей.
Вы забыли access_token=
param:
$mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$other_fb_id."/mutualfriends/".$fb_id."?access_token=".$access_token), true);