create convertidor rss instagram

convertidor - rss finder



Feed RSS público de Instagram (8)

Me preguntaba cómo ink361 estaba creando un feed RSS de Instagram desde un nombre de usuario.

Ejemplo de feed: http://ink361.com/feed/user/snoopdogg

Publicación del blog: http://blog.ink361.com/post/23664609916/new-rss-instagram-feed-feature-on-ink361-com

Cualquier idea sería apreciada.

Gracias.


Desafortunadamente, la solución anterior del usuario 2543857 ya no funciona. Sin embargo, aquí hay una versión que funciona con la fuente de la página de perfil actual.

Cree un archivo JSON desde la URL y el nombre de usuario (establezca esto como un trabajo cron, X veces al día)

<?php $json = file_get_contents(''http://instagram.com/username''); $json = strstr($json, ''{"entry_data"''); $json = strstr($json, ''</script>'', true); $json = rtrim($json,'';''); file_put_contents("username.json",$json); ?>

Muestra algunas imágenes del feed JSON

<?php $json = file_get_contents(''username.json''); $data = json_decode($json,true); $img1 = $data[''entry_data''][''UserProfile''][0][''userMedia''][0][''images''][''thumbnail''][''url'']; $img2 = $data[''entry_data''][''UserProfile''][0][''userMedia''][1][''images''][''thumbnail''][''url'']; $img3 = $data[''entry_data''][''UserProfile''][0][''userMedia''][2][''images''][''thumbnail''][''url'']; print ''<img src="''.$img1.''" />''; print ''<img src="''.$img2.''" />''; print ''<img src="''.$img3.''" />''; ?>


Gracias a torvin por la propina.

Aquí es cómo puede obtener imágenes de Instagram en su sitio sin usar la API.

Cree el archivo json desde la url y el nombre de usuario (establezca esto como un trabajo cron, X veces al día)

<? $html = file_get_contents(''http://instagram.com/username/''); $html = strstr($html, ''["lib''); $html = strstr($html, ''</script>'', true); $html = substr($html,0,-6); file_put_contents("username.json",$html); ?>

Muestra algunas imágenes de json feed

<? $json = file_get_contents(''username.json''); $data = json_decode($json); $img1 = $data[2][0]->props->userMedia[0]->images->standard_resolution->url; $img2 = $data[2][0]->props->userMedia[1]->images->standard_resolution->url; $img3 = $data[2][0]->props->userMedia[2]->images->standard_resolution->url; print ''<img src="''.$img1.''" />''; print ''<img src="''.$img2.''" />''; print ''<img src="''.$img3.''" />''; ?>


Instagram tiene una API RSS accesible al público, es difícil encontrar información al respecto, pero funciona para las etiquetas (la usamos).

Para las etiquetas la sintaxis es la siguiente:

http://instagr.am/tags/some-tag-you-want-to-follow/feed/recent.rss

No estoy seguro de si tienen algo similar para los feeds de los usuarios, ya que dije que es muy difícil encontrar información al respecto y que puede desaparecer de un día para otro en favor de la API oficial, pero ahora mismo funciona para etiquetas

Aquí hay una publicación oficial del blog al respecto (aunque solo cubre etiquetas): http://blog.instagram.com/post/8755963247/introducing-hashtags-on-instagram


La respuesta de @ user2543857 fue buena. Desafortunadamente, la estructura de los datos de Instagram ha cambiado. A partir de la fecha de publicación, esto funcionará. Copie / pegue en un archivo en su servidor PHP y use como: yoursite.com/instarss.php?user=name_of_instagram_user Esto devolverá una fuente XML / RSS válida.

¡¡EDITAR!! Naturalmente, la salida de la página / JSON ha cambiado con la nueva apariencia de instagram. Aquí está el código actualizado (junio, 2015):

<?php if (!isset($_GET[''user''])) { exit(''Not a valid RSS feed. You didn/'nt provide an Instagram user. Send one via a GET variable. Example .../instarss.php?user=snoopdogg''); } header(''Content-Type: text/xml; charset=utf-8''); $html = file_get_contents(''http://instagram.com/''.$_GET[''user''].''/''); $html = strstr($html, ''{"static_root''); $html = strstr($html, ''</script>'', true); //$html = substr($html,0,-6); $html = substr($html, 0, -1); $data = json_decode($html); // print_r($data->entry_data->ProfilePage[0]->user->media->nodes); $rss_feed = ''<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel>''; $rss_feed .= ''<title>''.$_GET[''user''].''/'s Instagram Feed</title><atom:link href="http://''.$_SERVER[''HTTP_HOST''].$_SERVER["REQUEST_URI"].''" rel="self" type="application/rss+xml" /><link>http://instagram.com/''.$_GET[''user''].''</link><description>''.$_GET[''user''].''/'s Instagram Feed</description>''; foreach($data->entry_data->ProfilePage[0]->user->media->nodes as $node) { $rss_feed .= ''<item><title>''; if(isset($node->caption) && $node->caption != '''') { $rss_feed .= htmlspecialchars($node->caption, ENT_QUOTES, ENT_HTML5); } else { $rss_feed .= ''photo''; } // pubdate format could also be: "D, d M Y H:i:s T" $rss_feed .= ''</title><link>https://instagram.com/p/''.$node->code.''/</link><pubDate>''.date("r", $node->date).''</pubDate><dc:creator><![CDATA[''.$_GET[''user''].'']]></dc:creator><description><![CDATA[<img src="''.$node->display_src.''" />]]></description><guid>https://instagram.com/p/''.$node->code.''/</guid></item>''; } // foreach "node" (photo) $rss_feed .= ''</channel></rss>''; echo $rss_feed; ?>

En realidad, no utilice el código anterior. Intentaré mantener esta esencia en el futuro.

EDITAR Diciembre de 2016: estoy cansado de perseguir la salida cambiante de Instagram solo para rasparla y hacer que cambie unos meses más tarde. Yo diría que solo use la API ... Si aún está interesado en hacer un feed RSS desde la página de un usuario, este Gist le dará una idea de cómo hacerlo.


La respuesta es simple.
Para acceder a los datos del usuario solo debe tener un token de acceso válido.
El ink361 tiene una aplicación en la red social http://vk.com/app3225087 que almacena tokens de acceso de usuarios autenticados en db.
Solo queda encontrar en la base de datos una válida y obtener los datos de usuario que desee.


Puede acceder al feed de cualquier usuario de Instagram utilizando el punto final API /users/user-id/media/recent . Este punto final requiere un access_token que puede obtener al autorizar a algún usuario con Instagram (no necesariamente para el que solicita el feed). El proceso para recibir access_token se describe here .

Entonces, lo que puede hacer ink361 es obtener un access_token para ellos mismos (su usuario en Instagram) y usarlo para realizar /users/user-id/media/recent solicitudes /users/user-id/media/recent de las fuentes de otros usuarios. Simple como eso.


Puede obtener acceso a su feed RSS para instagram utilizando su API. Su API usa oAuth2 para la autenticación. Utilizo este método en mi blog personal para mostrar las fotos de Instagram en la página de inicio. Sospecho que así es como funciona el sitio ink361. Ink361 se conectará a la API de instagram y solicitará al usuario un inicio de sesión a través del cuadro de instagram que usará para permitir que ink361 acceda a su cuenta de instagram. El sitio ink361 almacenará en caché el token recibido por instagram una vez que la autenticación sea exitosa, de modo que puedan regresar repetidamente a la API de instagram utilizando el mismo token para la autenticación. Bingo, tiene acceso a los datos de los usuarios y puede crear un feed RSS a partir de él.


Si yo fuera ink361, simplemente rastrearía las páginas de Instagram, analizaría HTML y lo convertiría en RSS. Sin API, sin autorización, sin problemas.