Ошибка при получении списка друзей друга вошедшего в систему пользователя Facebook php-sdk

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

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

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

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

[Пт, 02 марта, 18:20:44 2012] [ошибка] [клиент 192.168.1.2] Неустранимая ошибка PHP: Uncaught Exception: 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));

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


person Somnath Muluk    schedule 02.03.2012    source источник
comment
Теперь этот запрос дает иногда отличный результат, но иногда он дает ноль. Мой вопрос: почему fql ведет себя по-разному в разных транзакциях?   -  person Somnath Muluk    schedule 05.03.2012


Ответы (3)


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

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

person Gil Birman    schedule 02.03.2012
comment
Я не могу использовать JavaScript SDK. Как настроить сервер для загрузки запроса с таким количеством информации? - person Somnath Muluk; 05.03.2012

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

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));
person Somnath Muluk    schedule 12.03.2012

person    schedule
comment
Вопрос был в том, чтобы получить список друзей друга. Ваш ответ даст список друзей вошедшего в систему пользователя. - person Somnath Muluk; 15.06.2012