Theo Facebook - Authentication within a Canvas Page Document, họ nói rằng chúng tôi sẽ nhận được một signed_request
trong đó bao gồm một đối tượng JSON. Bây giờ họ nói rằng signed_request
có thể được thông qua $_POST['signed_request']
Tôi đồng ý nó làm việc cho tôi.làm thế nào để đọc facebook signed_request để có được user_id
Bây giờ theo họ nếu người dùng đang đăng nhập tôi sẽ nhận được một giá trị đối tượng JSON như thế này: -
{
"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",
...
}
}
Bây giờ tôi muốn lấy user_id
ra điều này vì vậy tôi đang sử dụng mảnh này mã nhưng không hoạt động: -
if(isset($_POST['signed_request']))
{
echo 'YES';
$json = $_POST['signed_request'];
$obj = json_decode($json);
print $obj->{'user_id'};
}
Nó chỉ in YES
. Tại sao nó như vậy?
Tôi đã đọc ở đâu đó mà không có xác thực ứng dụng, tôi sẽ không thể trích xuất user_id
nhưng theo facebook, đây là bước đầu tiên và xác thực ứng dụng sẽ là 4. Tôi mới làm quen với nó, nếu ai đó có thể giúp tôi, nó sẽ giúp ích rất nhiều. Cảm ơn.
Nếu bạn thực hiện 'print_r ($ _ POST)', bạn thấy gì? – Brad
Bạn thực sự thấy gì khi bạn thử 'print_r ($ _ POST)'? – Brad
@Brad khi i 'print_r ($ _ POST [ 'signed_request']);' tôi nhận được chính xác giá trị này 'cnMQQpKShmtfcXXEAjNrazO7AZxAqCuZ0aIA-k1L-P8.qgytuisdhrl0aG0iOiJITUFDLVNIQTI1NiI sImV4cGlyZXMiOjEzNDUwNTM2MDAsImlzc3VlZF9hdCI6MTM0NTA0ODYwOCpoemi1dGhfdG9rZW4iOiJB QUFFOGZCWW1sN2NCQUJHVWZIb1VZUGdMcngwdjBURFlSdVFiNHNQR2pSMDRUNnZKZHkzWkFYU2RBYWNiV nFtMHJRZTFKZ2lrWkFRWkFJR2RPb0JuQ0JiVGxLOGpuUXlCSVpDWkJsWHdzWG5XbHg5VVZEV1dkIiwicG FnZSI6eyJpZCI6IjI2OTY3MDc5NjQ4MDcxOCIsImxpa2VkIjpmYWxzZSwiYWRtaW4iOmZhbHNlfSwidXN lciI6eyJjb3VudHJ5IjoiaW4iLCJsb2NhbGUiOiJlbl9JTiIsImFnZSI6eyJtaW4iOjIxfX0sInVzZXJf aWQiOiIxNTc2NDU1NjQ5In0' –