Ошибка, чтобы получить список друзей друга, вошедшего в систему пользователя Facebook php-sdk - PullRequest
0 голосов
/ 02 марта 2012

Я могу получить список друзей друга, вошедшего в систему, но ограниченного числа друзей (пользователей приложения), у которых меньше друзей, кроме одного друга.

Подождите, я объясню подробно.

Я могу получить список друзей, которые являются пользователями приложения.Мои 8 друзей - пользователи приложения.Я могу общаться с друзьями из 7 друзей, но не могу завести друзей одного друга.Одно из различий обнаружило, что у него более 3300 друзей, около 300 человек.

Я получаю эту ошибку

[Пт. 02 18:20:44 2012] [ошибка] [клиент192.168.1.2] Неустранимая ошибка PHP: необработанное исключение: 18: этот вызов API не может быть выполнен из-за ограничений ресурсов \ n, брошенных в /var/www/jobjasoos/system/libraries/base_facebook.php в строке 1040

Я думаю, что это из-за большого нет.друзей.Есть ли способ избежать этой ошибки?

Я использую этот запрос FQL.

$query="SELECT uid, name, work FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $current_user) ) ORDER BY name";

$user_info=$facebook->api(array('method'=>'fql.query',
             'query'=>$query));

И я видел следующие ссылки, и не получил никакой подсказки.

Ответы [ 3 ]

0 голосов
/ 12 марта 2012

Напишите эти две строки, чтобы избежать тайм-аутов при вызове facebook, затем позвоните в api facebook.

set_time_limit(0); 
ini_set("memory_limit", "1024M");

$query="SELECT uid, name, work FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid2 IN (SELECT uid2 FROM friend  WHERE uid1 = $current_user) ) ORDER BY name";

$user_info=$facebook->api(array('method'=>'fql.query',
                'query'=>$query));
0 голосов
/ 15 июня 2012
$friends = $facebook->api('me/friends');
//print_r($friends['data']);
print_r("Number of Friends: ". count($friends['data']));
foreach ($friends['data'] as $key=>$listOfFriends) {
    echo "<br/>".$key." ".$listOfFriends['name']."<img src='https://graph.facebook.com/".$listOfFriends['id']."/picture' width='50' height='50' title='".$listOfFriends['name']."' />";     
}
0 голосов
/ 03 марта 2012

Ваш сервер не настроен для загрузки запроса с таким большим количеством информации.Вы можете попробовать перенастроить свой сервер, но я бы посоветовал изменить дизайн вашего приложения (если это возможно).То есть используйте PHP SDK вместо PHP, чтобы получить список друзей.Это разгрузит использование полосы пропускания от вашего сервера вашим клиентам.Мое приложение использует JS SDK для загрузки 5000 друзей без проблем.

Чтобы продолжить использовать php, см. Здесь: Как мне оптимизировать FQL, чтобы избежать тайм-аутов Facebook?

...