У меня есть приложение вкладки facebook с URL-адресом. Я хочу передать URL некоторые параметры GET. Обычно так я выполняю подписанный запрос для получения пользовательских данных:
if ($signed_request = parsePageSignedRequest()) { $config = array( 'appId' => $app_id, 'secret' => $app_secret, ); $facebook = new Facebook($config); $ret_obj = $facebook->api('/me', 'GET', array()); $theemail = $ret_obj['email']; $thename = $ret_obj['name']; $theusername = $ret_obj['username']; }
Мне было интересно, как получить параметр GET из URL-адреса. URL-адрес выглядит так:
https://www.facebook.com/pages/Msomepagey/23023424231927?sk=app_518726691484563&user=someuser
Я хочу получить значение для user
.
Есть идеи?
Вам нужно использовать параметр app_data
. Facebook прочитает этот параметр и передаст его в ваше приложение в запросе:
Кроме того, ваше приложение также получит строковый параметр, называемый
app_data
как частьsigned_request
если параметр app_data был установлен в исходной строке запроса в URL-адресе, на который загружена ваша вкладка. Это может выглядеть так: «https://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here
». Вы можете использовать это, чтобы настроить контент, который вы визуализируете, если управляете генерацией ссылки.
На стороне примечания вы можете использовать PHP-SDK, чтобы также получить подписанный запрос следующим образом:
$signed_request = $facebook->getSignedRequest();
Подробнее здесь: https://github.com/facebook/facebook-php-sdk/blob/master/src/base_facebook.php#L489
Также вам нужно проверить, действительно ли у вас действительно действующий сеанс пользователя перед вызовом /me
, я предлагаю вам взглянуть на пример PHP-SDK.