根据Facebook - Authentication within a Canvas Page Document,他们说我们将得到一个由一个JSON对象组成的signed_request
。现在他们说signed_request
可以通过$_POST['signed_request']
我同意它为我工作。如何阅读Facebook的signed_request获取user_id
现在根据他们,如果用户登录我会得到这样一个JSON对象值: -
{
"expires":UNIXTIME_WHEN_ACCESS_TOKEN_EXPIRES,
"algorithm":"HMAC-SHA256",
"issued_at":UNIXTIME_WHEN_REQUEST_WAS_ISSUED,
"oauth_token":"USER_ACCESS_TOKEN",
"user_id":"USER_ID",
"user":{
"country":"ISO_COUNTRY_CODE",
"locale":"ISO_LOCALE_CODE",
...
}
}
现在我想取user_id
出这个所以我用这块代码但它不工作: -
if(isset($_POST['signed_request']))
{
echo 'YES';
$json = $_POST['signed_request'];
$obj = json_decode($json);
print $obj->{'user_id'};
}
它只是打印YES
。为什么这样?
我读过的地方没有应用程序认证,我将无法提取user_id
,但根据facebook,这是第一步,认证应用程序将是第四。我对此很陌生,如果有人能帮助我,这将会非常有帮助。谢谢。
如果你做了一个'print_r($ _ POST)',你看到了什么? – Brad 2012-08-15 16:35:08
当你尝试'print_r($ _ POST)'时,你实际看到了什么? – Brad 2012-08-15 16:38:23
@Brad当我'的print_r($ _ POST [ 'signed_request']);'我得到的正是这种价值'cnMQQpKShmtfcXXEAjNrazO7AZxAqCuZ0aIA-K1L-P8.qgytuisdhrl0aG0iOiJITUFDLVNIQTI1NiI sImV4cGlyZXMiOjEzNDUwNTM2MDAsImlzc3VlZF9hdCI6MTM0NTA0ODYwOCpoemi1dGhfdG9rZW4iOiJB QUFFOGZCWW1sN2NCQUJHVWZIb1VZUGdMcngwdjBURFlSdVFiNHNQR2pSMDRUNnZKZHkzWkFYU2RBYWNiV nFtMHJRZTFKZ2lrWkFRWkFJR2RPb0JuQ0JiVGxLOGpuUXlCSVpDWkJsWHdzWG5XbHg5VVZEV1dkIiwicG FnZSI6eyJpZCI6IjI2OTY3MDc5NjQ4MDcxOCIsImxpa2VkIjpmYWxzZSwiYWRtaW4iOmZhbHNlfSwidXN lciI6eyJjb3VudHJ5IjoiaW4iLCJsb2NhbGUiOiJlbl9JTiIsImFnZSI6eyJtaW4iOjIxfX0sInVzZXJf aWQiOiIxNTc2NDU1NjQ5In0' – 2012-08-15 16:39:39