Friends?
Problem
I need to determine whether two (or more) users are friends.
Solution
Use the Friends.areFriends()
method:
$areFriends = $facebook->api_client->friends_areFriends('12345', '67890');
The method also accepts two arrays and will let you know whether each pair (pulling the member at the same position in each array) is a friend:
$aUsers = array('12345', '67890', '11223'); $bUsers = array('33445', '66778', '99100'); $areFriends = $facebook->api_client->friends_areFriends($aUsers, $bUsers);
Discussion
Either way, the Friends.areFriends()
returns a
multidimensional array in which each element contains uid1
, uid2
, and are_friends
elements (with the latter being
true
, false
, or empty if the members aren’t
visible due to privacy rules or don’t exist, which is the case with
our fictional users here):
Array ( [0] => Array ( [uid1] => 12345 [uid2] => 33445 [are_friends] => ) [1] => Array ( [uid1] => 67890 [uid2] => 66778 [are_friends] => ) [2] => Array ( [uid1] => 11223 [uid2] => 99100 [are_friends] => ) )
Since the method is symmetric, both arrays need to have the same number of elements in them or you’ll get an invalid parameter error.
FQL equivalent
If you’d prefer to use FQL to access friends, the equivalent query is:
SELECT uid1, uid2 FROM friend WHERE uid1=uid1 AND uid2=uid2
See Checking Whether Two Users are Friends for more information.
Get Facebook Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.