Facebook タブの URL から URL パラメータを取得する必要があります。
https://www.facebook.com/name/app_MYID?v=app_MYID&app_data=%7Bid%3A1%7D
app_data パラメーター値は {id:1} です。
私のphpは次のようになります
require 'fb/facebook.php';
$facebook = new Facebook(array(
'appId' => 'my_app_id',
'secret' => 'my_secret',
'cookie' => true
));
$signedRequest = $facebook->getSignedRequest();
$appData = array();
if (!empty($signedRequest) && !empty($signedRequest['app_data'])) {
$appData = json_decode($signedRequest['app_data'], true);
}
エントリ $signedRequest['app_data'] は決して設定されません。また、FB エラーはどこにもありません。$signedRequest['code'] などの $signedRequest の他のすべてのエントリは正常に見えます。
私のアプリはサンドボックス モードです。パラメータが失われる原因となるリダイレクトは行われません。
私に何ができる?
これがsignedRequestの私のダンプです:
array(4) { ["algorithm"]=> string(11) "HMAC-SHA256" ["code"]=> string(344) "AQCPnmrVunEJ3D4qbwm2PrulMCJrd14iLfK6MwNmA8FzdaIGwlO4OmlvaYiNss0BJjIIjV5P5P2Oq4JrK71qbB-MBi8jcb26TabckkvJF5lGhyGpgRv5BHY_-YAOnqch1CMAKMwZCYcXIZP6CjSdXvoE-ZkDe_QhIKGi8fdNRFQHrwxNSr4oDKtwqNxKCLPJ96nQOlNrw_GxE5ARamR26ge9hmSnKY6cPdA9C0IMTDnufXJoYOluuFt53_Vu59Jqv33tWmP6gz-zV9kuJ8MIvXkfFCpxlzAh2Wgr_cyx7OumxCNv5NDvzeYNhHDOg1MrP2zwxI9ex_YG6A9_eNf_UASy" ["issued_at"]=> int(1374715498) ["user_id"]=> string(15) "100004071391531" }