getSignedRequest равен нулю, когда его нет на вкладке - PullRequest
1 голос
/ 13 февраля 2012

Мне нужно получить доступ к языку пользователя, прежде чем запрашивать у него какие-либо разрешения.Обычно это доступно в getSignedRequest, но это выглядит как NULL, когда я смотрю приложение напрямую, а не из вкладки страницы.Таким образом, он равен NULL, когда я перехожу на apps.facebook.com/myapp/, но он имеет правильные значения, когда я просматриваю его на странице типа www.facebook.com/pages/mypage/pageid?sk=appid.Это ошибка или ожидаемое поведение?Нужно ли использовать другой метод, когда я не буду получать доступ к приложению через страницу?

Ответы [ 2 ]

4 голосов
/ 13 февраля 2012

Насколько я помню, в Facebook подписанный запрос будет доступен только на первой странице вашей вкладки - например. index.php.

Отсюда вам нужно будет сохранять полученные значения и получать к ним доступ из локального хранилища или сеанса по мере необходимости.

Кроме того, если вы посмотрите на приложение напрямую, оно вообще не будет доступно. Вы должны посмотреть на это через Facebook, чтобы этот метод был доступен. К сожалению, вам придется сначала запросить разрешения, если вы хотите, чтобы эта информация находилась за пределами вкладки страницы.

Удачи!

1 голос
/ 20 мая 2013

используйте $ _REQUEST ["signature_request"] для подписанного запроса вместо использования функции

$dd = parse_signed_request($_REQUEST["signed_request"]);

// функция для анализа функции parse_signed_request ($ signature_request) {list ($ encoded_sig, $ payload)= взорваться ('.', $ signature_request, 2);

    // decode the data
    $sig = base64_url_decode($encoded_sig);
    $data = json_decode(base64_url_decode($payload), true);

    return $data;
}

function base64_url_decode($input)
{
    return base64_decode(strtr($input, '-_', '+/'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...