Достигнут лимит приложений Facebook при вызове FQL

Возможный дубликат:
Ошибка Facebook OAuth: Достигнут лимит запросов приложения

Я написал приложение для мониторинга Facebook, которое по умолчанию вызывает Facebook FQL каждые 30 секунд, чтобы определить, есть ли у пользователя какие-либо непрочитанные уведомления, сообщения или запросы на добавление в друзья.

Недавно он перестал работать. При отладке я обнаружил, что Facebook возвращает следующую ошибку:

error =     {
        message = "(#4) Application request limit reached";
        type = OAuthException;
    };

Хм? Как я могу это исправить? Это производственное настольное приложение. Очевидно, что чем больше количество пользователей, тем больше количество запросов будет делать мое приложение.

Кроме того, это не может быть мерой по предотвращению спама, мое приложение читает только FQL, ничего никогда не публикуется...


person houbysoft    schedule 06.01.2012    source источник
comment
Может быть, Facebook просто не любит, когда вы отправляете так много запросов? Вы, вероятно, создаете слишком большую нагрузку на сервер и слишком мало пользы для FB.   -  person Has QUIT--Anony-Mousse    schedule 06.01.2012
comment
@ Anony-Mousse: ну да, но как мне увеличить этот лимит? Я просто говорю некоторым из моих пользователей удалить приложение, потому что Facebook не любит, когда слишком много из них отправляют запросы? Это не имеет смысла.   -  person houbysoft    schedule 06.01.2012
comment
Проверьте панель управления приложения. Это также может быть количество запросов на ограничение пользователя. Теперь, когда один пользователь устанавливает ваше приложение 3 раза и вызывает в 3 раза больше запросов...   -  person Has QUIT--Anony-Mousse    schedule 06.01.2012
comment
@ Anony-Mousse: на вкладке «Диагностика» есть таблица, в которой говорится, что запросы 1.0 ограничены 50 запросами в день, вы думаете, что это так? Могу ли я увеличить это число? Кроме того, это для каждого пользователя или для каждого приложения? Я бы не хотел, чтобы приложение перестало работать для всех моих пользователей, очевидно...   -  person houbysoft    schedule 06.01.2012
comment
Вы можете купить увеличение, я думаю. Проверьте документацию Facebook!   -  person Has QUIT--Anony-Mousse    schedule 06.01.2012
comment
@ Anony-Mousse: не могли бы вы дать ссылку? Я ничего не могу найти в документах.   -  person houbysoft    schedule 06.01.2012
comment
Нет, я удалил свою учетную запись Facebook из соображений конфиденциальности. Думаю, это было на сайте developer.facebook.com.   -  person Has QUIT--Anony-Mousse    schedule 06.01.2012
comment
@ Anony-Mousse: я долго искал. Там нет упоминания о способе увеличить/купить увеличение лимита.   -  person houbysoft    schedule 07.01.2012
comment
Используйте более новый API. Requests 1.0 означает, что вы используете старый API.   -  person Has QUIT--Anony-Mousse    schedule 07.01.2012
comment
@Anony-Mousse: единственная функция, использующая устаревший API, — это developers.facebook. com/docs/reference/rest/, но на этой странице конкретно указано, что нужно продолжать использовать ее, поскольку она недоступна в новом API. Все остальное, что делает мое приложение, использует только FQL.   -  person houbysoft    schedule 07.01.2012
comment
В качестве примечания, сегодня утром я снова попробовал свое приложение, и похоже, что оно работает нормально. Несколько пользователей подтвердили это. В разделе «Диагностика» моего приложения на Facebook теперь ничего не появляется. Так что я предполагаю, что это была временная проблема на стороне Facebook...   -  person houbysoft    schedule 07.01.2012


Ответы (1)


Вы должны использовать API подписки, а не так часто опрашивать Facebook. https://developers.facebook.com/docs/reference/api/realtime/

person Brent Baisley    schedule 07.01.2012
comment
Но работает ли это только для настольного приложения? Похоже, для этого требуется URL-адрес, по которому Facebook может размещать сообщения. - person houbysoft; 07.01.2012
comment
Нет, но вы можете настроить свой собственный сервер, который вы можете опрашивать и получать обновления Facebook. - person Brent Baisley; 07.01.2012
comment
Верно, но тогда моему приложению в любом случае нужно было бы опросить мой собственный сервер, поэтому я подумал, что могу также напрямую опросить Facebook. - person houbysoft; 07.01.2012
comment
Если бы все так делали, Facebook бы не справился с нагрузкой. Если у вас есть собственный сервер, вы можете открыть сокет, использовать API-интерфейс Facebook для подписки в реальном времени и отправлять обновления, когда есть изменения. - person Brent Baisley; 08.01.2012