javascript - rejuvenecer - rostros de mujeres de 50 años
¿Cómo obtengo imágenes de álbumes usando Facebook API? (5)
- Desde la primera llamada, obtienes todos los álbumes (y las identificaciones del álbum)
''/me/albums''
- a partir de ahí, puedes obtener la foto del álbum (portada)
''/''+album.id+''/picture''
- Y las fotos del álbum
''/''+album.id+''/photos''
Esto debería ser bastante común, pero de alguna manera no puedo hacer que funcione. Lo que me gustaría hacer es obtener fotos del álbum de Facebook. Estoy implementando esto en un sitio web.
Puedo obtener los álbumes usando este código:
function getAlbumPhotos(){
FB.api(''/me/albums'', function(resp) {
//Log.info(''Albums'', resp);
var ul = document.getElementById(''albums'');
for (var i=0, l=resp.data.length; i<l; i++){
var
album = resp.data[i],
li = document.createElement(''li''),
a = document.createElement(''a'');
a.innerHTML = album.name;
a.href = album.link;
li.appendChild(a);
ul.appendChild(li);
}
});
};
el resp devuelve un conjunto de datos que contiene enlaces a los álbumes de fotos PERO me gustaría las fuentes de las imágenes para cada álbum y no veo nada que pueda usar en los datos de resp. El objeto de datos contiene un enlace al álbum pero no imágenes individuales.
Según la documentación de Facebook, las fotos son "conexiones" a los álbumes. No estoy seguro de lo que significa, pero su médico muestra que puede obtener fotos individuales.
De este enlace:
[http://developers.facebook.com/docs/reference/api/album/][1]
muestra el json (?) devuelve el enlace, el id, el nombre, etc. que puedo obtener. Sin embargo, en la parte inferior de esa página hay "conexiones" al álbum que incluye fotos, comentarios, imágenes. Cuando hago clic en las fotos, se muestra la estructura de datos JSON, incluido el img src. La pregunta es, ¿cómo lo consigo? Parece muy sencillo, pero no puedo hacer que funcione.
Lo intenté
FB.api(''/me/photos'',function(resp) ...
y
FB.api(''/me/photo'',function(resp) ...
las fotos no devuelven nada mientras la foto vuelve indefinida.
Las muestras de código serán muy apreciadas.
Puedes usar esta api:
$ photos = $ facebook-> api (''/ me? fields = albums.limit (50) .fields (photos.limit (50) .fields (id, fuente))'');
también puedes probar
/ _ABLUM_ID_ / fotos
en el gráfico api, es decir
https://graph.facebook.com/12341234/photos
donde 12341234 es la id del objeto del álbum del que quieres obtener las fotos.
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
var loggedIn = false;
function loginFacebook()
{
//initializes the facebook API
}
function loadAlbums()
{
FB.init({
appId : ''345203265493024'',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.login(function(response)
{
if (response.authResponse)
{
//Logged in and accepted permissions!
document.getElementById("status").innerHTML = "Getting album information from your Facebook profile";
var counter = 0;
// Start Normal API
FB.api(''/me/albums'', function(response)
{
var d=response.data;
for (var i=0, l=d.length; i<l; i++)
{
addOption(response["data"][i].name,response["data"][i].id);
counter++;
}
document.getElementById("status").innerHTML = "There are "+ counter +" albums in your Facebook profile";
});
//end of Normal API
document.getElementById("albumBtn").style.visibility="hidden";
}
},{scope:''read_stream,publish_stream,offline_access,user_photos,friends_photos,user_photo_video_tags,friends_photo_video_tags''});
}
//Adds a new option into the drop down box
function addOption(opText,opVal)
{
var v = document.getElementById("albumsList");
v.innerHTML += ''<br/><a href="facebookphotos.aspx?album=''+opVal+''&name=''+opText+''">''+opText+''</a>'';
}
function init()
{
var v1 = document.getElementById("albumBtn");
v1.onclick = loadAlbums;
// v1.style.visibility= "hidden";
}
//calls init function once all the resources are loaded
window.addEventListener("load",init,true);
</script>
this code works
FB.api("/"+albumid+"/photos",function(response){
var photos = response["data"];
document.getElementById("photos_header").innerHTML = "Photos("+photos.length+")";
for(var v=0;v<photos.length;v++) {
var image_arr = photos[v]["images"];
var subImages_text1 = "Photo "+(v+1);
//this is for the small picture that comes in the second column
var subImages_text2 = ''<img src="''+image_arr[(image_arr.length-1)]["source"]+''" />'';
//this is for the third column, which holds the links other size versions of a picture
var subImages_text3 = "";
//gets all the different sizes available for a given image
for(var j = 0 ;j<image_arr.length;j++) {
subImages_text3 += ''<a target="_blank" href="''+image_arr[j]["source"]+''">Photo(''+image_arr[j]["width"]+"X"+image_arr[j]["height"]+'')</a><br/>'';
}
addNewRow(subImages_text1,subImages_text2,subImages_text3);
}
});