Этот код работал нормально, но теперь в моем объекте $data
отсутствует user_id
.Я имел в виду, что с того момента, как Пользователь «любит» страницу, он больше не является анонимным, и что вы можете получить его идентификатор, используя этот код.Это код, который я всегда использовал:
<code>require_once 'assets/requests/facebook-php-sdk-dafef11/src/facebook.php';
$secret = "XXX";
$data = parse_signed_request($_REQUEST['signed_request'], $secret);
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
echo ' FUID: ', $fuid = $data['user_id']; // NO USER ID HERE ANYMORE
echo '<pre>' , var_dump($data), '
';if (strtoupper ($ data ['attribute'])! == 'HMAC-SHA256') {error_log ('Неизвестный алгоритм. Ожидаемый HMAC-SHA256');вернуть ноль;} // check sig $ Ожидаемый_sig = hash_hmac ('sha256', $ payload, $ secret, $ raw = true);if ($ sig! == $ Ожидаемый_сиг) {error_log ('подпись JSON с плохой подписью!');вернуть ноль;} вернуть $ data;} function base64_url_decode ($ input) {return base64_decode (strtr ($ input, '-_', '+ /'));}
var_dump
объект $data
показывает это:
array(4) {
["algorithm"]=>
string(11) "HMAC-SHA256"
["issued_at"]=>
int(1321524964)
["page"]=>
array(3) {
["id"]=>
string(15) "227488627318218"
["liked"]=>
bool(true)
["admin"]=>
bool(false)
}
["user"]=>
array(2) {
["locale"]=>
string(5) "de_DE"
["age"]=>
array(1) {
["min"]=>
int(21)
}
}
}
Facebook что-то изменил?