Я разработал приложение для холста на Facebook, которое публикует пользователям новостные ленты, и я хочу, чтобы пользователи могли нажимать на ссылку в новостной ленте и переходить в мое приложение вместе с некоторыми данными, которые будут представлены в приложении например, передав его в строке запроса).
Когда я создаю ссылку, которая будет публиковаться в новостной ленте пользователя, я устанавливаю поле ссылки на -
http://apps.facebook.com/myappname/?datatopass=mydata
Это работает, когда пользователь нажимает эту ссылку, браузер направляет его на эту ссылку. Однако я не могу получить доступ к переменной $ _GET ['datatopass'] (используя PHP), и она кажется пустой. Я пытался использовать javascript для вывода переменной window.location, и я не вижу свою переданную строку запроса, хотя я вижу URL-адрес, как это было выше в адресной строке моего браузера. То, что я вижу, - это URL сайта, который я настроил в приложении для разработчиков на Facebook, и параметры state и code , которые использует Facebook. Он лишил моего параметра datatopass , который я хотел прочитать, когда запустило мое приложение.
Итак ... как я могу передать данные, которые я хочу отправить? Я знаю, что есть поле app_data, если вы используете signature_request, но, насколько я понимаю, это хорошо только для приложений, которые находятся на вкладке страницы. Я использую метод приложения iFrame canvas.
Когда я просматриваю журналы доступа моего сервера apache, я вижу, что есть запись POST для адреса моего сайта с моей добавленной строкой запроса -
my.domain.com 123.456.7.890 - - [23/Feb/2012:14:21:19 +0000] "POST /facebookapp/?datatopass=mydata HTTP/1.1" 200 300 "http://apps.facebook.com/myappname/?datatopass=mydata" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
Далее следует запись GET -
my.domain.com 123.456.7.890 - - [23/Feb/2012:14:21:20 +0000] "GET /facebookapp/directory/?state=99226fiawhoidhaoia09809a085d94832&code=ahfakshdlkfhalksj.... HTTP/1.1" 200 27094 "http://my.domain.com/facebookapp/?play=asd" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
Мои извинения. Я не совсем понимаю, что делает вышеупомянутое, но надеялся, что это будет полезной дополнительной информацией, чтобы помочь ответить на этот вопрос.