example - pagination facebook graph api
Facebook Graph API-¿Cómo recuperas las fotos de diferentes tamaños de un álbum? (3)
Facebook proporciona una opción de tipo para el campo de imagen, por ejemplo, puede especificar algo como:
<img src="https://graph.facebook.com/xxx/picture?access_token=yyy&type=normal />
donde el parámetro de tipo puede ser uno de cuadrado , pequeño , normal o grande para imágenes de perfil o miniatura , normal , álbum para imágenes de álbum.
Fuente: http://developers.facebook.com/docs/reference/api/user/ (en la sección Conexiones)
Editar: se agregaron diferentes opciones para las imágenes de los álbumes
Ok, primero déjame decirte que no tengo problemas para obtener los álbumes de fotos de un usuario y recorrer la salida para mostrar todas las fotos del tamaño que quiero.
Sin embargo, si quiero llamar a una foto como:
<img src="https://graph.facebook.com/<?=$this->session->page->photo_id?>/picture?access_token=<?=$this->session->member->facebook_access_token?>" />
No puedo entender cómo decir el tamaño que quiero que muestre.
En este código de ejemplo de Facebook, verá que cuando se recupera el álbum, cada foto de la matriz vuelve con los diferentes tamaños en esta matriz de muestra. Podría guardar la URL de miniatura de esto, pero no quiero guardarla, solo recuperarla cuando sea necesario.
{
"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...
}
Tiene que haber una forma de recuperar estos diferentes tamaños.
Gracias.
Pensé que compartiría un pequeño truco para obtener tamaños de imagen más grandes de Graph API. Facebook como una pequeña convención con URL de imagen que no es muy obvia. Por ejemplo, tome la siguiente URL:
https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_s.jpg
Observe el _s.jpg
al final? Eso determina el tamaño de la imagen. Puede cambiar esto a _o.jpg
para obtener la versión de tamaño completo "original". En otras palabras, actualice la URL de la imagen a:
https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_o.jpg
Cada imagen de Facebook tiene una versión _o.jpg
. En el peor de los casos, obtienes algo del mismo tamaño que la miniatura. Si ese es el caso, no estás mejor de lo que estabas antes.
aquí src_big y src son fuente de URL de imagen de diferente tamaño
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;
}