Sign_request уходит в приложение Facebook - PullRequest
1 голос
/ 12 ноября 2011

Я просто хочу задать вопрос о том, что в Facebook подписано "request ".

Я использую Zend Framework для своего приложения.Дело в том;когда пользователь впервые авторизует мое приложение, ИЛИ входит в приложение с URL-адреса apps.facebook.com/my_app/, я успешно получаю подписанный запрос.

На самом деле, я получаю его из apps.facebook.com/my_app/index.php (Благодаря этот вопрос )

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

Согласно этой теме в Codeplex , я могу ожидать, что Sign_request придет во втором запросе пользователя:

Вместо использования файла cookie, который вы должны использоватьзначение подписанного запроса, которое Facebook помещает на вашу страницу при каждом запросе.

С другой стороны, в документации Facebook говорится:

Подписанный запрос передается в приложения на Facebook.com, когда они загружаются в среду Facebook

Теперь, отправляет ли Facebook этот запрос при каждом вызове или в моем приложении есть техническая проблема?Может ли это быть проблемой IFrame?Когда пользователь нажимает «категории», страница загружается в том же фрейме, и URL-адрес в адресной строке не изменяется.

1 Ответ

3 голосов
/ 12 ноября 2011

Я думаю, что в основном разница в определении того, что означает «каждый запрос».Facebook будет отправлять подписанный запрос на вашу страницу только при первом создании содержащего iframe, т. Е. Когда пользователь переходит непосредственно к apps.facebook.com/your_app/somepage.php в качестве местоположения браузера.Если пользователь затем переходит по «обычной» ссылке на вашей странице, которая приводит только к перезагрузке iframe, а не всей страницы, подписанный запрос не будет отправлен.Если это помогает думать об этом таким образом, signature_request отправляется, когда пользователь впервые загружает ваше приложение, но не при каждом последующем запросе.Причина, по которой возникает некоторая путаница, заключается в том, что многие кодировщики взяли хакерский ярлык, заставив все свои ссылки использовать target=_top и указав их на apps.facebook.com/your_app/yourpage.php, а не на www.yourdomain.com/yourpage.php.Так как это приводит к тому, что вся страница перестраивается каждый раз, это действительно приводит к отправке подписанного подписи с каждым извлечением страницы.Но при нормальной (и рекомендуемой) работе вам нужно рассчитывать на то, что подписанный запрос отправляется только один раз.

...