Я могу отправлять запросы друзьям с помощью «Селектора запросов на добавление в список друзей» в приложении на вкладке страницы, ссылка на который выглядит следующим образом:
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');?
header('Location: url');
p.s. Временная шкала уже используется.
Да, вы должны перенаправить на страницу 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. Здесь requesttids являются фактическими значениями (список через запятую, который получает холст).
app_data
https://www.facebook.com/<my_page_name>/app_<my_app_id>?app_data=requestids
app_data доступно вашему приложению со вкладкой страницы как часть signed_request, которое оно получает.
signed_request
Из документов :
Кроме того, ваше приложение также получит строковый параметр app_data как часть подписанного запроса, если в исходной строке запроса в URL-адресе, на который загружена вкладка, был установлен параметр app_data. Для приведенной выше ссылки «Купить сейчас» это может выглядеть следующим образом: «https://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here". Вы можете использовать это для настройки содержимого, которое вы отображаете, если вы управляете генерацией ссылки.