Используя PHP 5.2.11 и новый графический код facebook …
Если я позвоню
$ Facebook-> апи ( "/ меня");
Я получаю правильный ответ:
array 'id' => string '10700210' (length=8) 'name' => string 'Brandon Renfrow' (length=19) 'first_name' => string 'Brandon' (length=7) 'middle_name' => string '✫' (length=3) 'last_name' => string 'Renfrow' (length=7) 'link' => string 'http://www.facebook.com/brenfrow' (length=32) 'about' => string 'Spiritual birthday: 1/22/2005' (length=29) ... ...
Но если я позвоню
$facebook->api("/me/picture");
Я всегда получаю ответ:
null
Кто-нибудь знает, почему это?
Ну, я думаю, лучший ответ, который я нашел, – вызвать http://graph.facebook.com/USER_ID?fields=picture, чтобы получить URL изображения. Плохо они не документируют такие вещи на своем API, особенно когда это очевидно для многих людей.
В качестве дополнения к ответу бетамана вы можете передать параметры в отдельном массиве следующим образом:
$aResponse = $oFacebook->api('/me', array( 'fields' => 'picture', 'type' => 'large' ));
Возможно, вам даже не придется выполнять вызов API … используйте это в своем интерфейсе:
<img src="//graph.facebook.com/USER_ID/picture?type=square" />
Подробнее здесь: http://developers.facebook.com/docs/reference/api/#pictures
Существует еще более простой способ, используя предоставленную facebook api, просто позвоните:
$facebook->api("/me?fields=picture");
Это сделает ваш код более простым и элегантным.
При использовании $ facebook-> api ("/ me? Fields = picture"); работает, вы не сможете передавать такие параметры, как ширина или тип. Вместо этого попробуйте следующее:
$facebook->api('/me/picture?redirect=false');
Это сработало для меня, а также позволит вам передавать параметры.
Я просто пошел в свой «/ me / picture» в браузере и перенаправил меня на статичное изображение на одном из CDN-серверов Facebook. Возможно, перенаправление бросает ключ в ваш апи-вызов.