Nunca quisieron obtener informacion de un perfil de instagram de una manera facil y sencilla? Bueno...
En una de esas navegaciones nocturnas de poco dormir, me encontre con esta solucion, que por lo que pude ver esta poco difundida.
https://www.instagram.com/{public_profile_name}/?__a=1
Resulta, que agregando el query ?__a=! al final de la direccion al perfil, podemos acceder a un JSON con toda la informacion publica del perfil.
por ejemplo:
https://www.instagram.com/refactordevs/?__a=1
nos devuelve el siguiente JSON:
Como pueden ver el JSON es muy y tenemos toda la informacion de la cuenta, inclusive, con unas pocas lineas de codigo, (en este caso en javascript), podemos obtener el feed:
async function getInstagramPictures (profileName) {
const baseUrl = "https://www.instagram.com";
const profileUrl = `${baseUrl}/${profileName}`;
const jsonDataUrl = `${profileUrl}/?__a=1`;
const response = await fetch(jsonDataUrl);
const jsonData = await response.json();
const pictures = jsonData.graphql.user.edge_owner_to_timeline_media.edges;
if (response.ok) {
return pictures;
} else {
throw new Error(pictures);
}
}
getInstagramPictures("refactordevs")
.then(pictures => console.log("Pictures:", pictures))
.catch(error => console.error("Error:", error));
Al realizar un bucle,se puede mostrar cada imagen o su miniatura.
Tambien podriamos traer las imagenes de perfil, o cualquier tipo de informacion.
solo basta con cambiar la siguiente linea:
const pictures = jsonData.graphql.user.edge_owner_to_timeline_media.edges;
Saludos! y espero que les sea util!
Sources:
Top comments (3)
Im having some CORS error on the fetch :/
It happend to me, I think Meta company doesn't allow to you fetch those public JSONs
Excelente info!