Według Facebook - Authentication within a Canvas Page Document, mówią, że otrzymamy signed_request
, który składa się z obiektu JSON. Teraz mówią, że signed_request
można przejść przez $_POST['signed_request']
Zgadzam się, że działa dla mnie.jak odczytać facebook signed_request, aby uzyskać user_id
Teraz według nich, jeśli użytkownik jest zalogowany i będzie coraz JSON wartość obiektu takiego: -
{
"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",
...
}
}
Teraz chcę pobrać user_id
się z tego tak używam ten kawałek kod, ale nie działa: -
if(isset($_POST['signed_request']))
{
echo 'YES';
$json = $_POST['signed_request'];
$obj = json_decode($json);
print $obj->{'user_id'};
}
Po prostu drukuje YES
. Dlaczego tak jest?
Czytałem gdzieś, że bez uwierzytelniania aplikacji nie będę w stanie wyodrębnić user_id
, ale według facebooka, jest to pierwszy krok i uwierzytelnianie aplikacji będzie 4. Jestem dla niego nowy, jeśli ktoś może mi pomóc, to będzie bardzo pomocne. Dzięki.
Jeśli robisz 'print_r ($ _ POST)', co widzisz? – Brad
Co faktycznie widzisz przy próbie 'print_r ($ _ POST)'? – Brad
@Brad kiedy 'print_r ($ _ POST [ 'signed_request']);' ja dostać dokładnie to wartość 'cnMQQpKShmtfcXXEAjNrazO7AZxAqCuZ0aIA-K1L-P8.qgytuisdhrl0aG0iOiJITUFDLVNIQTI1NiI sImV4cGlyZXMiOjEzNDUwNTM2MDAsImlzc3VlZF9hdCI6MTM0NTA0ODYwOCpoemi1dGhfdG9rZW4iOiJB QUFFOGZCWW1sN2NCQUJHVWZIb1VZUGdMcngwdjBURFlSdVFiNHNQR2pSMDRUNnZKZHkzWkFYU2RBYWNiV nFtMHJRZTFKZ2lrWkFRWkFJR2RPb0JuQ0JiVGxLOGpuUXlCSVpDWkJsWHdzWG5XbHg5VVZEV1dkIiwicG FnZSI6eyJpZCI6IjI2OTY3MDc5NjQ4MDcxOCIsImxpa2VkIjpmYWxzZSwiYWRtaW4iOmZhbHNlfSwidXN lciI6eyJjb3VudHJ5IjoiaW4iLCJsb2NhbGUiOiJlbl9JTiIsImFnZSI6eyJtaW4iOjIxfX0sInVzZXJf aWQiOiIxNTc2NDU1NjQ5In0' –