Получение идентификатора пользователя Facebook на фан-странице не работает больше

Этот код работал нормально, но теперь user_id отсутствует в моем объекте $data. Я имел в виду, что с момента, когда пользователь "любит" страницу, он больше не анонимен и что вы можете получить его идентификатор, используя этот код. Это код, который я всегда использовал:

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 class="prettyprint linenums">' , var_dump($data), '
'; if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') { error_log('Unknown algorithm. Expected HMAC-SHA256'); return null; } // check sig $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true); if ($sig !== $expected_sig) { error_log('Bad Signed JSON signature!'); return null; } return $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?

1 ответ

Используете ли вы старый материал fb_sig? Я не собираюсь притворяться, что понимаю, что это значит, но fb_sig был удален на днях. Они сказали, что это было снято 1 октября, но я думаю, что они фактически удалили его в конце прошлой недели:

http://developers.facebook.com/blog/post/497/

licensed under cc by-sa 3.0 with attribution.