У меня есть приложение для Facebook (игра в режиме разработки), потребляемая веб-клиентом (холст Facebook) и мобильным клиентом (приложение для Android). У меня также есть REST API (разработанный с Laravel), который позволяет обмены между клиентами и API Facebook. API доступен через Интернет (не локальный).
Моя цель - обнаружить, когда пользователи удаляют мое приложение Facebook.
документация на Facebook говорит, что:
Люди могут удалять приложения через Facebook.com без взаимодействия с самим приложением. Чтобы помочь приложениям обнаружить, когда это произошло, мы разрешить им предоставлять URL-адрес обратного вызова с отменой авторизации, который будет пинговаться когда это происходит.
Вы можете активировать обратный вызов deauthorize через панель приложений. Просто иди в ваше приложение, затем выберите меню "Настройки" и, наконец, расширенный Вкладка. Текстовое поле предоставляется для URL-адреса Отклонителя обратного вызова.
Всякий раз, когда пользователь вашего приложения отменяет его полномочия, этот URL-адрес будет отправлен HTTP POST, содержащий подписанный запрос. Ознакомьтесь с нашим руководством по анализу подписанный запрос, чтобы узнать, как его декодировать, чтобы узнать идентификатор пользователя, который вызвал обратный вызов.
Маршрут Laravel для этого URL-адреса принимает запросы GET
и POST
. Я знаю, что обратный вызов Facebook использует запрос POST
, но прием метода GET
позволяет мне использовать инструмент Open Graph Object Debugger чтобы проверить, доступен ли мой URL-адрес на серверах Facebook (и это успешно).
В настоящее время я использую самоподписанный сертификат SSL (AES 128). Apache - это мой веб-сервер (он перенаправляет все HTTP-запросы на HTTPS).
Я знаю как декодировать параметр signed_request
закодированный POST (проблема здесь отсутствует).
Проблема:
Когда я удаляю приложение (с помощью тестовой учетной записи Facebook) , адрес обратного вызова никогда не называется. Журналы Apache (доступ/ошибка) абсолютно ничего не показывают (пока я вижу предыдущий доступ через Open Graph Object Debugger).
Я попытался изменить URL обратного вызова другим доменом с сертификатом SSL, предоставленным известным ЦС. Тот же результат... это очень расстраивает.
Я не понимаю, почему. Я что-то пропустил?
- Это проблема с моим веб-сервером?
- Это проблема с моим SSL-сертификатом?
- Это проблема с настройкой моего приложения Facebook?
- Это потому, что мое приложение Facebook находится в режиме разработки?
- Это ошибка в Facebook?