Удалить app_data из подписанного запроса - PullRequest
0 голосов
/ 06 декабря 2011

Когда я вызываю мое fb-приложение с GET-запросом, например «? App_data = 1», переменная находится в подписанном запросе. Хорошо пока что Но когда я нажимаю на другую ссылку в моем fb-приложении, app_data все еще находится в подписанном запросе. Мое приложение реагирует на это, но оно мне больше не нужно.

Как я могу удалить app_data в подписанном запросе? У кого-нибудь есть предложения по этой проблеме?

Я использую PHP и JS SDK.

$aSignedRequest = $_REQUEST['signed_request'];
if(isset($aSignedRequest))
{
    $sSignedRequest = $aSignedRequest['signed_request'];
    list($sEncodedSig, $sPayload) = explode('.', $sSignedRequest, 2);

    // decode the data
    $aData = json_decode(base64_decode(strtr($sPayload, '-_', '+/')), true);
    $iContestId = $aData['app_data'];
}

1 Ответ

1 голос
/ 07 декабря 2011

Вот решение:

unset($aData['app_data']);
$sData = json_encode($aData);
$sPayload = base64_encode($sData);
$sEncodedSig = hash_hmac('sha256', $sPayload, '<<fb app-secret>>', $raw = true);
$sSignedRequest = base64_encode($sEncodedSig).'.'.$sPayload;
$_REQUEST['signed_request'] = $sSignedRequest;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...