Facebook Graph API - Как вы извлекаете фотографии разных размеров из альбома?
Хорошо, сначала позвольте мне сказать вам, что у меня нет проблем с получением фотоальбома пользователя и прокруткой вывода, чтобы отобразить все фотографии размером, который я хочу.
Однако, если я хочу вызвать фотографию как:
<img src="https://graph.facebook.com/<?=$this->session->page->photo_id?>/picture?access_token=<?=$this->session->member->facebook_access_token?>" />
Я не могу понять, как сообщить размер, который я хочу показать.
В этом примере кода из Facebook вы увидите, что сыворотка, восстанавливающая альбом, каждую фотографию в массиве возвращается с разными размерами в этом массиве. Я мог бы просто сохранить эскиз эскиза, но я не хочу его хранить, просто извлекаю, когда это необходимо.
{
"id": "10150146071831729",
"from": {
"name": "Facebook",
"category": "Product/service",
"id": "20531316728"
},
"picture": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_s.jpg",
"source": "http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_n.jpg",
"height": 483,
"width": 720,
"images": [
{
"height": 483,
"width": 720,
"source": "http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_n.jpg"
},
{
"height": 120,
"width": 180,
"source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_a.jpg"
},
{
"height": 87,
"width": 130,
"source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_s.jpg"
},
{
"height": 50,
"width": 75,
"source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_t.jpg"
}
],
....... continued...
}
Должен быть способ получить эти разные размеры.
Спасибо.
Ответы
Ответ 1
Facebook предоставляет параметр типа для поля изображения, например, вы можете указать что-то вроде:
<img src="https://graph.facebook.com/xxx/picture?access_token=yyy&type=normal />
где параметр типа может быть одним из квадратных, малых, нормальных или больших для изображений профиля или миниатюр, нормального альбома для альбомов.
Источник: http://developers.facebook.com/docs/reference/api/user/ (в разделе Подключения)
Изменить: Добавлены различные параметры для альбомов
Ответ 2
Думаю, я бы поделился небольшим трюком в получении большего размера изображения из Graph API. Facebook как небольшое соглашение с URL-адресами изображений, которые не очень очевидны. Например, введите следующий URL-адрес:
https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_s.jpg
Обратите внимание на _s.jpg
в конце? Это определяет размер изображения. Вы можете изменить это на _o.jpg
, чтобы получить "оригинальную" версию полного размера. Другими словами, обновите URL-адрес изображения:
https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_o.jpg
Каждое изображение Facebook имеет версию _o.jpg
. В худшем случае вы получаете что-то такого же размера, что и миниатюра. Если это произойдет, вам не лучше, чем раньше.
Ответ 3
здесь src_big и src - источник изображения с другим размером изображения
function get_photos_by_album_id($album_id){
if($album_id)
$fql = 'SELECT pid,src_big,owner,link,position,created,caption,src FROM photo WHERE aid="'.$album_id.'" ORDER BY created DESC LIMIT 0,6';
$param = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$fqlResult = $this->facebook->api($param);
return $fqlResult;
}