Подтвердить что ты не робот

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...
}

Должен быть способ получить эти разные размеры.

Спасибо.

4b9b3361

Ответ 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;

 }