#php #facebook #facebook-php-sdk
#php #Facebook #facebook-php-sdk
Вопрос:
У меня загружается iframe во вкладке facebook на странице вентилятора, и мне не удается получить доступ к объекту $ _REQUEST [«signed_request»]. Я в замешательстве, потому что это должно быть бесплатным и легко доступным. Я читал и перечитывал документы facebook и перепроверил настройки своего приложения facebook, но ничего не работает.
isset($_REQUEST['signed_request']
всегда равно false. Поскольку я использую Facebook PHP sdk, я также пытался
$facebook->getSignedRequest();
Я выполнил print_r для $ _REQUEST и не вижу там signed_request. Когда я печатаю объект facebook $, я вижу, что signedRequest пуст
[appId:protected] => XXX
[apiSecret:protected] => XXXXXXXXXXXXXXXXXXXX
[session:protected] => Array
[access_token] => XXXXXXXXXX|2.h75WqKxcA1xbNPufFvpKQQ__.3600.1304452800.1-726960374|JiO0ZS30SyLaApeqhMtdocK8B_Y
[base_domain] => XXXXXXXXX
[expires] => 1304452800
[secret] => rDF9C_z43_EUFy0Q_e6tyQ__
[session_key] => 2.h75WqKxcA1xbNPufFvpKQQ__.3600.1304452800.1-726960374
[sig] => 1971ef7eb8057c7404eae1f82d770ab5
[uid] => XXXXXXXXXXXXXXX
[signedRequest:protected] =>
[sessionLoaded:protected] => 1
[cookieSupport:protected] => 1
[baseDomain:protected] =>
[fileUploadSupport:protected] =>
[ПРАВИТЬ]
У меня действительно включен параметр OAuth 2.0 для приложения.
Комментарии:
1. У меня однажды была эта проблема, я никогда не оглядывался назад, но вы можете попробовать немного поиграть с настройками вашего приложения. Кроме этого, я думаю, вам нужно сообщить об ошибке в FB.
2. Влияет ли это на все браузеры?
Ответ №1:
Хорошо, только что столкнулся с этой проблемой сам и обнаружил проблему.
Убедитесь, что у вас нет перенаправления 301 на холст или страницу вкладки. В моем случае я настроил приложение как «mydomain.com/facebook/tab /» но мой сайт выполнял 301 запрос на «www.mydomain.com/facebook/tab /»
Содержимое будет отображаться, бит 301 привел к тому, что signedRequest стал нулевым.
Добавлен «www» в мой домен в настройках приложения, и подписанный запрос теперь содержит данные, которые я искал.
Комментарии:
1. боже .. ты потрясающий, братан!! мое приложение работало нормально на heroku, но на моем сайте оно не выдавало signed_request .. я не добавлял www в URL вкладки..
2. Спасибо, я форсировал HTTPS с тем же результатом.
Ответ №2:
У меня только что была эта проблема. Наконец-то разобрался. Мне пришлось добавить косую черту в конец URL-адресов моих вкладок в настройках приложения на вкладке Basic.
Вместо:http://domain.com/facebook
Мне нужно было:http://domain.com/facebook /
Комментарии:
1. Мне потребовался весь вечер, чтобы это исправить.
Ответ №3:
У меня была такая же проблема, и я решаю ее. Это проблема с URL-адресами. Убедитесь, что URL домена вашего приложения и вкладки страницы соответствуют тому же домену, например:
1) Домен приложения: example.com URL вкладки страницы: example.com будет работать
2) Домен приложения: example.com URL вкладки страницы: example.com/app / будет работать
3) Домен приложения: fb.example.com URL вкладки страницы: fb.example.com/app / будет работать
4) Домен приложения: fb.example.com URL вкладки страницы: example.com/fb не будет работать
Ответ №4:
После некоторого расследования я подозреваю, что это как-то связано с тем, где размещен исходный код iframe.
Когда я переместил все на localhost, signed_request начал приходить нормально.
Ответ №5:
Отредактируйте настройки вашего приложения tab. На вкладке «Дополнительно» убедитесь, что включен «OAuth 2.0 для Canvas».
Комментарии:
1. Я должен был упомянуть, что у меня включен OAuth. Спасибо.
Ответ №6:
это старый вопрос, но я нашел это в Google… проблема для меня заключалась в том, что я сделал перенаправление вручную на https URL моей вкладки страницы, а затем $ _POST [‘signed_request’] был потерян