Общие друзья Facebook Graph API

Используя графический 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);