Есть ли способ ограничить количество раз в день, когда пользователь может отправить запрос определенного типа? - PullRequest
0 голосов
/ 23 февраля 2012

В данный момент я создаю строку в таблице для каждого отправляемого запроса Facebook.Затем каждый раз, когда пользователь открывает средство выбора друзей FB для отправки запроса, я звоню в php-файл, который запрашивает информацию из этой таблицы и возвращает список идентификаторов пользователей FB всех людей, которым они отправили запрос.за последние 24 часаЯ делаю это для каждого типа запроса, который пользователь может отправить.

Проблема, с которой я столкнулся на данный момент, заключается в том, что если пользователь инициирует запрос, отправляет его нескольким людям, а затем сразу же снова открывает средство выбора друзей FB, записи предыдущего действия запроса еще не быливсе было добавлено к нашей внутренней таблице.Таким образом, игроки, если они идут достаточно быстро, могут отправлять несколько запросов одним и тем же друзьям FB.

Есть ли способ на стороне FB ограничить это поведение или это полностью зависит от разработчика?сдерживать?В любом случае, есть ли рекомендуемый метод, с помощью которого я должен добиться такого поведения?Спасибо.

Обновление

Мне пришло в голову, что наша БД не позволяет вводить несколько запросов для каждого пользователя в течение 24 часов.Сейчас я просто разрешаю делать второй запрос на стороне FB, а когда код пытается и не удается ввести вторую строку в нашу БД, он вызывает вызов FB Graph, который использует auth_token приложения для удаления запроса из самого Facebook,Это означает, что он на мгновение будет отображаться на странице запроса принимающего игрока в Facebook, но, поскольку он не связан со строкой во внутренней БД, пользователь все равно не получит вознаграждение за переход по клику.

Спасибо всем за предложения.@Gil Birman Я пошел дальше и принял ваш ответ, так как он совершенно действителен, даже если это не то, что я в конечном итоге использовал для решения проблемы.Спасибо!

1 Ответ

0 голосов
/ 23 февраля 2012

Есть несколько способов решить проблему задержки, которую вы упомянули, один из них - отключить кнопку запроса на отправку через javascript, как только она будет нажата.В вашем JavaScript-коде вместо немедленного отображения диалогового окна отправки запроса через FB.UI отправьте запрос json на ваш сервер.Только когда сервер ответит, вы должны отобразить диалоговое окно fb send request.Кроме того, ответ, который отправляет сервер, должен включать список друзей, которых нужно исключить.После отправки запроса fb ваш код javascript должен отправить еще один запрос json на сервер, чтобы указать, какие строки в базе данных необходимо обновить.Только когда сервер ответит во второй раз, вы, наконец, снова включите кнопку запроса на отправку.

Однако фактически невозможно ограничить # количество запросов, которые может отправить ваш пользователь.То есть, независимо от того, насколько хорошо вы спроектировали свой код javascript / php, ваш пользователь все равно может теоретически вызывать диалог запроса через консоль Javascript, чтобы полностью обойти ваши попытки защитить приложение.

...