Estoy tratando de poner los medios de Instagram recientes de un usuario en una barra lateral. Estoy tratando de usar la API de Instagram para buscar los medios.
http://instagram.com/developer/endpoints/users/
La documentación le dice a GET https://api.instagram.com/v1/users/<user-id>/media/recent/
, pero le dice que pase un token de acceso OAuth. Un token de acceso representa la autorización para actuar en nombre de un usuario. No quiero que los usuarios inicien sesión en Instagram para ver esto en la barra lateral. Ni siquiera deberían necesitar tener una cuenta de Instagram.
Por ejemplo, puedo ir a http://instagram.com/thebrainscoop sin haber iniciado sesión en Instagram y ver fotos. Quiero hacer eso a través de la API.
En la API de Instagram, las solicitudes no autenticadas por el usuario pasan un en client_id
lugar de un access_token
. Sin embargo, si lo intento, obtengo:
{
"meta":{
"error_type":"OAuthParameterException",
"code":400,
"error_message":"\"access_token\" URL parameter missing. This OAuth request requires an \"access_token\" URL parameter."
}
}
Entonces, ¿no es esto posible? ¿No hay forma de obtener los últimos medios (públicos) de un usuario sin pedirle primero que inicie sesión en una cuenta de Instagram a través de OAuth?
fuente
Respuestas:
Esto es tarde, pero vale la pena si ayuda a alguien, ya que no lo vi en la documentación de Instagram.
Para realizar GET en
https://api.instagram.com/v1/users/<user-id>/media/recent/
(en el momento actual de la escritura), en realidad no necesita el token de acceso OAuth.Puedes realizar
https://api.instagram.com/v1/users/[USER ID]/media/recent/?client_id=[CLIENT ID]
[ID DE CLIENTE] sería una identificación de cliente válida registrada en la aplicación a través de la gestión de clientes (no relacionada con el usuario). Puede obtener [ID DE USUARIO] del nombre de usuario realizando la solicitud de búsqueda de usuarios GET
https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]
fuente
Puede descargar cualquier feed de fotos de usuario de Instagram en formato JSON usando la
?__a=1
dirección de la página de destino como esta . No es necesario obtener una identificación de usuario o registrar una aplicación, sin tokens, sin oAuth.min_id
y lasmax_id
variables se pueden usar para paginación, aquí hay un ejemploYQL
es posible que no funcione aquí dentro del iframe cortado, por lo que siempre puede verificarlo manualmente en la Consola YQLACTUALIZACIÓN DE ABRIL DE 2018: después de las últimas actualizaciones de instagram, no puede hacer esto en el lado del cliente (javascript) porque los encabezados personalizados para la solicitud firmada no se pueden configurar con javascript debido a
CORS
Access-Control-Allow-Headers
restricciones. Todavía es posible hacerlo a través dephp
o cualquier otro método del lado del servidor con la firma adecuada en función derhx_gis
,csrf_token
y parámetros de la petición. Puedes leer más sobre esto aquí .ACTUALIZACIÓN DE ENERO DE 2019: YQL se retiró, así que ¡consulte mi última actualización con Google Image Proxy como
CORS
proxy para la página de Instagram! Entonces, solo momento negativo: la paginación no está disponible con este método.PHP
solución:fuente
11.11.2017
Dado que Instagram cambió la forma en que proporcionan estos datos, ninguno de los métodos anteriores funciona en la actualidad. Esta es la nueva forma de obtener los medios del usuario:
OBTENER
https://instagram.com/graphql/query/?query_id=17888483320059182&variables={"id":"1951415043","first":20,"after":null}
dónde:
query_id
- valor permanente: 17888483320059182 (tenga en cuenta que podría modificarse en el futuro).id
- Identificación del usuario. Puede venir con una lista de usuarios. Para obtener la lista de usuarios, puede utilizar la siguiente solicitud:GET https://www.instagram.com/web/search/topsearch/?context=blended&query=YOUR_QUERY
first
- cantidad de elementos para obtener.after
- Identificación del último elemento si desea obtener elementos de esa identificación.fuente
query_id
es un valor permanente. Eso significa que siempre es 17888483320059182 (al menos a menos que Instagram lo cambie). ID del usuario - es la ID del usuario (editó mi respuesta un poco)Pude obtener los medios más recientes de un usuario utilizando la siguiente API sin autenticación (incluida la descripción, los me gusta, el recuento de comentarios).
https://www.instagram.com/apple/?__a=1
P.ej
fuente
A partir de la semana pasada, Instagram deshabilitó las
/media/
URL, implementé una solución alternativa, que funciona bastante bien por ahora.Para resolver los problemas de todos en este hilo, escribí esto: https://github.com/whizzzkid/instagram-reverse-proxy
Proporciona todos los datos públicos de instagram utilizando los siguientes puntos finales:
Obtener medios de usuario:
Obtenga medios de usuario con recuento de límites:
Use JSONP:
La API proxy también agrega las URL de la página siguiente y la página anterior a la respuesta, por lo que no es necesario que calcule eso al final.
¡Espero que les guste!
Gracias a @ 350D por ver esto :)
fuente
La API de Instagram requiere autenticación de usuario a través de OAuth para acceder al punto final de medios reciente para un usuario. No parece haber otra forma en este momento para obtener todos los medios para un usuario.
fuente
Si está buscando una manera de generar un token de acceso para usar en una sola cuenta, puede probar esto -> https://coderwall.com/p/cfgneq .
Necesitaba una forma de usar la API de Instagram para obtener todos los medios más recientes para una cuenta en particular.
fuente
Aquí hay una solución de rieles. Es una especie de puerta de atrás, que en realidad es la puerta de entrada.
El objeto que recuperas varía dependiendo de si es una búsqueda de usuario o una búsqueda de etiqueta. Obtengo los datos de esta manera:
Luego obtengo otra página de resultados construyendo una url de la siguiente manera:
fuente
Gracias al esquema de API siempre cambiante (y horriblemente diseñado) de Instagram, la mayoría de lo anterior ya no funcionará a partir de abril de 2018.
Aquí está la ruta más reciente para acceder a datos de publicaciones individuales si está consultando su API directamente utilizando el
https://www.instagram.com/username/?__a=1
método.Suponiendo que sus
JSON
datos devueltos es$data
que puede recorrer cada resultado utilizando los siguientes ejemplos de ruta:Las cosas principales en este cambio reciente fueron
graphql
yedge_owner_to_timeline_media
.Parece que van a acabar con este acceso a la API para los clientes no comerciales en diciembre de 2018, así que aproveche al máximo mientras pueda.
Espero que ayude a alguien;)
fuente
JSFiddle
Javascript:
HTML:
CSS:
fuente
Solo quiero agregar a la respuesta @ 350D, ya que fue difícil para mí entender.
Mi lógica en el código es la siguiente:
Cuando llamo a API por primera vez, solo llamo
https://www.instagram.com/_vull_ /media/
. Cuando recibo respuesta, verifico el valor booleano demore_available
. Si es cierto, obtengo la última foto de la matriz, obtengo su identificación y luego llamo a la API de Instagram nuevamente, pero esta vezhttps://www.instagram.com/_vull_/media/?max_id=1400286183132701451_1642962433
.Lo importante es saber aquí, este Id es el Id de la última imagen en la matriz. Entonces, cuando solicite maxId con la última identificación de la imagen en la matriz, obtendrá las siguientes 20 imágenes, y así sucesivamente.
Espero que esto aclare las cosas.
fuente
Si omite Oauth, probablemente no sabría qué usuario de instagram son. Dicho esto, hay algunas maneras de obtener imágenes de instagram sin autenticación.
La API de Instagram le permite ver las imágenes más populares de un usuario sin autenticarse. Usando el siguiente punto final: Aquí está el enlace
Instagram proporciona feeds rss para etiquetas en este momento .
Las páginas de usuario de Instagram son públicas, por lo que puede usar PHP con CURL para obtener su página y un analizador DOM para buscar en el html las etiquetas de imagen que desee.
fuente
Un truco más, busca fotos por hashtags:
Dónde:
query_hash
- valor permanente (creo que su hash de 17888483320059182, se puede cambiar en el futuro)tag_name
- El título habla por sí mismofirst
- cantidad de elementos para obtener (no sé por qué, pero este valor no funciona como se esperaba. El número real de fotos devueltas es ligeramente mayor que el valor multiplicado por 4.5 (aproximadamente 110 para el valor 25 y aproximadamente 460 para el valor 100))after
- Identificación del último elemento si desea obtener elementos de esa identificación. El valor de laend_cursor
respuesta de JSON se puede usar aquí.fuente
Bueno, como ya
/?__a=1
dejó de funcionar, es mejor usar curl y analizar la página de Instagram como está escrito en esta respuesta: ¿ Generar token de acceso API de Instagram, sin tener que iniciar sesión?fuente
Si desea buscar usuarios sin tener ID de cliente y token de acceso:
1: Si desea buscar todos los usuarios que tengan sus nombres similares a su palabra de búsqueda:
reemplace SeachName con el texto que desea buscar:
https://www.instagram.com/web/search/topsearch/?query=SearchName
2: si desea buscar exactamente el mismo nombre de usuario:
reemplace UserName con su nombre de búsqueda deseado:
fuente
Se puede utilizar esta API para recuperar información pública del usuario Instagram:
https://api.lityapp.com/instagrams/thebrainscoop?limit=2
Si no se establece el parámetro de límite, los mensajes están limitados a las 12 de manera predeterminada
Este La API se realizó en SpringBoot con HtmlUnit como se puede ver en el código:
Es un ejemplo de respuesta:
fuente
Realmente necesitaba esta función pero para Wordpress. Encajé y funcionó perfectamente
fuente
El siguiente código de nodejs elimina imágenes populares de una página de Instagram. La función 'ScrapeInstagramPage' se encarga del efecto de envejecimiento posterior.
Pruébalo aquí
Ejemplo: para una URL dada ' https://www.instagram.com/dress_blouse_designer/ ' se puede llamar a la función
fuente
Esto funciona utilizando una simple llamada ajax y recorridos iterativos de imágenes.
fuente
Aquí hay un script php que descarga las imágenes y crea un archivo html con enlaces en las imágenes. Acredite 350D para la versión php, esto es solo elaborado ... Sugeriría poner esto como un trabajo cron y disparar lo que necesite a menudo. Trabajo verificado a partir de mayo de 2019 .
fuente