Facebook SDK: отправка запроса из приложения на вкладке страницы

Я могу отправлять запросы друзьям, используя «Выбор нескольких запросов на добавление в друзья» внутри моего приложения на вкладке «Страница», ссылка которого выглядит так:

https://www.facebook.com/<my_page_name>/app_<my_app_id>

Мой друг получает мой запрос и нажимает «Принять». Он перенаправляет на реальную ссылку приложения Facebook, а именно:

https://apps.facebook.com/<my_app_name>/?fb_source=request&request_ids=<an_request_id>

который больше не находится внутри вкладки страницы. Как я могу перенаправить пользователя на 1-ю ссылку вместо 2-й, в то время как request_ids должен быть сохранен? Мне просто сделать header('Location: url'); переадресацию?

p.s. Временная шкала уже используется.


person Raptor    schedule 01.04.2012    source источник


Ответы (1)


Да, вы должны перенаправить на URL-адрес вашей страницы, потому что запросы всегда перенаправляются на URL-адрес холста.

Чтобы передать идентификаторы запроса, вы можете использовать поле app_data. Поэтому вместо перенаправления на https://www.facebook.com/<my_page_name>/app_<my_app_id> вы перенаправляете на https://www.facebook.com/<my_page_name>/app_<my_app_id>?app_data=requestids. Здесь requestid — это фактические значения (список, разделенный запятыми, который получает холст).

app_data доступен вашему приложению вкладок страницы как часть signed_request, которое оно получает.

Из документов :

Кроме того, ваше приложение также получит строковый параметр с именем app_data как часть signed_request, если параметр app_data был установлен в исходной строке запроса в URL-адресе, по которому загружена ваша вкладка. Для приведенной выше ссылки «Купить сейчас» это может выглядеть так: «https://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here». Вы можете использовать это для настройки контента, который вы отображаете, если вы контролируете генерацию ссылки.

person bool.dev    schedule 01.04.2012
comment
Почти идеальный ответ. Ссылка перенаправления должна быть: https://www.facebook.com/<my_page_name>/app_<my_app_id>?app_data=requestids и PHP header('Location: url') в этом случае не работает. Необходимо использовать перенаправления JavaScript на стороне клиента. - person Raptor; 02.04.2012
comment
рад, что это помогло ... я ничего не упоминал о header, потому что иногда это работает (когда вы еще не отправили какой-либо вывод в браузер), afaik. URL, я не был так уверен в этой форме, я привык к старому стилю, https://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here . в любом случае спасибо, я тоже кое-что узнал. - person bool.dev; 02.04.2012
comment
К вашему сведению, оба формата URL-адреса работают, но Facebook, похоже, предпочитает мою версию после изменения на временную шкалу, поскольку это формат ссылки по умолчанию для временной шкалы. - person Raptor; 02.04.2012