Авторизация на стороне сервера и запрос тайм-аутов в Facebook? - PullRequest
2 голосов
/ 07 октября 2011

Часть моего приложения требует входа в систему и не может использовать аутентификацию на стороне клиента с javascript и т. Д., Поэтому запрашивает аутентификацию на стороне сервера с помощью http-запроса на:

https://graph.facebook.com/oauth/access_token?client_id=[app_id]&client_secret=[secret]&redirect_uri=[uri]&code=[code]

Это работает нормально, большую часть времени. Однако я периодически получаю ответы на тайм-аут / ноль от этого запроса. Я могу запустить инструмент, который будет запрашивать эту страницу снова и снова, и будет успешно в 80-90% случаев. Как только происходит один сбой, все запросы терпят неудачу для любого пользователя в течение нескольких секунд, а затем он снова работает.

Кто-нибудь еще сталкивался с чем-то подобным, или вы знаете, есть ли ограничение на запросы, которые Facebook будет отключать через определенный порог? Я не могу найти какую-либо информацию, которая звучит похоже в документации.

Ответы [ 3 ]

1 голос
/ 20 октября 2011

Вы должны получить токен только один раз за сеанс.Другой способ это, конечно, превращение FB в защиту от дросселирования.Однако если вы не подаете заявку на получение специального разрешения «offline_access», срок действия вашего токена истекает.По умолчанию retentionPeriod = 2 и retentionUnit = час.возможно, вам следует запросить

scope=offline_access

в своем разрешении, а затем получить маркер пользователя только один раз.Кроме того, вам необходимо выполнить

try{my api call} catch(bad token){ reload the new token and retry } 

, который повторно запросит токен, если какой-либо вызов API завершился неудачно с ошибкой аутентификации.

1 голос
/ 18 октября 2011

Это потому, что если вы отправляете слишком много запросов, Facebook думает, что вы хотите провести DDOS-атаку и на время заблокировать ваши запросы.

0 голосов
/ 19 октября 2011

В приложении Insights вы можете проверить регулирование API со страницы диагностики, а также наиболее распространенные ошибки со страницы производительности.Если вы не видите никакой ошибки или ничего не регулируется, вы можете изменить логику приложения, запросить токен еще раз, если вы получите тайм-аут / нулевые ответы.

...