Ich versuche, alle gegenseitigen Freunde Verbindungen mit PHP/FQL zu wählen. Mit meiner UID (540 Freunde), was> 12.000 Verbindungen bedeutet, von denen> 6500 einzigartig sind. Also dieser Code sollte alle Verbindungen zurückgeben, aber Facebook hat offenbar eine 4999/5000 Zeilenbegrenzung für FQL-Abfragen.Facebook gemeinsame Freunde und FQL 4999/5000 Rekord Grenze
// select mutual unique friends
$unique_connections = $facebook->api_client->fql_query("
SELECT uid1, uid2 FROM friend
WHERE uid1 IN
(SELECT uid2 FROM friend WHERE uid1=$uid)
AND uid2 IN
(SELECT uid2 FROM friend WHERE uid1=$uid)
");
Ich kenne die Zahlen oben, da der ursprüngliche Code, den ich schrieb Schleifen durch meine Freundesliste und sendet eine getMutualFriend Abfrage für jeden von ihnen.
foreach ($friends as $key)
{
$mutual_friends = $facebook->api_client->friends_getMutualFriends($key);
foreach ($mutual_friends as $f_uid)
{
array_push($all_connections, array($key,$f_uid));
}
}
Natürlich dauert es fast 3 Minuten, um das Skript auszuführen, während die FQL-Abfrage in 5 Sekunden zurückkehrt. Nach einer Stunde Suche nach dieser Antwort bin ich zu dem Schluss gekommen, dass der einzige Weg, um dies zu umgehen, eine Mischung der beiden Methoden ist. Gut, und post hier. Irgendwelche Ideen für einen besseren Weg, dieses Skript zu schreiben und das 4999/5000 Zeilenlimit zu übertreffen?
Hier ist eine fql_multiquery, die das gleiche wie oben tun sollte. Es ist auch auf 4999/5000 begrenzt.
$queries = '{
"user_friends":"SELECT uid2 FROM friend WHERE uid1 = '.$uid.'",
"mutual_friends":"SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM #user_friends) AND uid2 IN (SELECT uid2 FROM #user_friends)"
}';
$mq_test = $facebook->api_client->fql_multiquery(trim($queries));
print_r($mq_test);
Wollen Sie Freunde von Freunden oder gemeinsame Freunde? Die Anzahl der einzigartigen gemeinsamen Freunde für alle deine Freunde ist wahrscheinlich die sinnloseste Statistik, die ich aus der FB API ziehen könnte. Die Facebook-API ermöglicht es Ihnen nur, Freunde des angemeldeten Benutzers nachzuschauen, sodass Sie keine Freunde von Freunden erhalten können. – Matt
Ich meinte gegenseitige Freunde; Ich werde versuchen, das im Titel zu korrigieren. Die Sinnlosigkeit hängt von Ihrer Perspektive ab. Ich habe eine App erstellt, mit der Leute ihre Daten exportieren können und gemeinsame Freunde finden (vermutlich zur Visualisierung). – ow3n
Sie sollten das erreichen können, indem Sie Batch-Requests und die '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' 'Verbindungen aus der Graph-API verwenden. https://developers.facebook.com/docs/reference/api/batch/ Ich würde eine vollständige Antwort mit einem Beispiel posten, wenn ich Zeit habe. –