2011-12-06 8 views
0

"?app_data = 1"のようなGETリクエストでfb-appを呼び出すと、変数は署名されたリクエストに含まれます。さて、これまでのところ。しかし、私がfb-appの別のリンクをクリックすると、app_dataは依然として署名されたリクエストになります。私のアプリケーションはそれに反応しますが、私は再びそれを必要としません。署名付きリクエストから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

は、ソリューションです:

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; 
関連する問題