J'essaie de mettre les médias Instagram récents d'un utilisateur sur une barre latérale. J'essaie d'utiliser l'API Instagram pour récupérer les médias.
http://instagram.com/developer/endpoints/users/
La documentation dit à GET https://api.instagram.com/v1/users/<user-id>/media/recent/
, mais elle dit de passer un jeton d'accès OAuth. Un jeton d'accès représente l'autorisation d'agir au nom d'un utilisateur. Je ne veux pas que les utilisateurs se connectent à Instagram pour voir cela dans la barre latérale. Ils ne devraient même pas avoir besoin d'un compte Instagram.
Par exemple, je peux aller sur http://instagram.com/thebrainscoop sans être connecté à Instagram et voir des photos. Je veux faire cela via l'API.
Dans l'API Instagram, les demandes non-utilisateurs authentifiés passent un au client_id
lieu d'un access_token
. Si j'essaye cela, cependant, j'obtiens:
{
"meta":{
"error_type":"OAuthParameterException",
"code":400,
"error_message":"\"access_token\" URL parameter missing. This OAuth request requires an \"access_token\" URL parameter."
}
}
Alors, n'est-ce pas possible? N'existe-t-il aucun moyen de récupérer les derniers médias (publics) d'un utilisateur sans demander à un utilisateur de se connecter d'abord à un compte Instagram via OAuth?
la source
Réponses:
C'est tard, mais ça vaut le coup si cela aide quelqu'un car je ne l'ai pas vu dans la documentation d'Instagram.
Pour exécuter GET sur
https://api.instagram.com/v1/users/<user-id>/media/recent/
(au moment de l'écriture actuelle), vous n'avez en fait pas besoin de jeton d'accès OAuth.Vous pouvez effectuer
https://api.instagram.com/v1/users/[USER ID]/media/recent/?client_id=[CLIENT ID]
[ID CLIENT] serait un identifiant client valide enregistré dans l'application via la gestion des clients (sans aucun lien avec l'utilisateur). Vous pouvez obtenir [USER ID] à partir du nom d'utilisateur en effectuant la demande de recherche des utilisateurs GET:
https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]
la source
Vous pouvez télécharger n'importe quel flux de photos d'utilisateurs Instagram au format JSON en utilisant à
?__a=1
côté de l'adresse de la page de destination comme celle-ci . Pas besoin d'obtenir un identifiant d'utilisateur ou d'enregistrer une application, pas de jetons, pas d'oAuth.min_id
et lesmax_id
variables peuvent être utilisées pour la pagination, voici un exempleYQL
peut ne pas fonctionner ici dans l'iframe découpé, vous pouvez donc toujours le vérifier manuellement dans YQL ConsoleMISE À JOUR D'AVRIL 2018: Après les dernières mises à jour d'Instagram, vous ne pouvez pas le faire côté client (javascript) car les en-têtes personnalisés pour la demande signée ne peuvent pas être définis avec JavaScript en raison de
CORS
Access-Control-Allow-Headers
restrictions. Il reste possible de le faire viaphp
ou toute autre méthode côté serveur avec la signature appropriée en fonction derhx_gis
,csrf_token
et les paramètres de demande. Vous pouvez en savoir plus ici .MISE À JOUR DE JANVIER 2019: YQL a pris sa retraite, alors, vérifiez ma dernière mise à jour avec Google Image Proxy comme
CORS
proxy pour la page Instagram! Ensuite, seul moment négatif - la pagination n'est pas disponible avec cette méthode.PHP
Solution:la source
11.11.2017
Depuis qu'Instagram a changé la façon dont ils fournissent ces données, aucune des méthodes ci-dessus ne fonctionne de nos jours. Voici la nouvelle façon d'obtenir les médias de l'utilisateur:
GET
https://instagram.com/graphql/query/?query_id=17888483320059182&variables={"id":"1951415043","first":20,"after":null}
Où:
query_id
- valeur permanente: 17888483320059182 (notez qu'elle pourrait être modifiée à l'avenir).id
- id de l'utilisateur. Il peut venir avec une liste d'utilisateurs. Pour obtenir la liste des utilisateurs, vous pouvez utiliser la requête suivante:GET https://www.instagram.com/web/search/topsearch/?context=blended&query=YOUR_QUERY
first
- quantité d'articles à obtenir.after
- id du dernier élément si vous souhaitez obtenir des éléments à partir de cet identifiant.la source
query_id
est une valeur permanente. Cela signifie qu'il s'agit toujours de 17888483320059182 (du moins à moins qu'Instagram ne le modifie). id de l'utilisateur - est l'id de l'utilisateur (modifié un peu ma réponse)J'ai pu obtenir les médias les plus récents d'un utilisateur en utilisant l'API suivante sans authentification (y compris la description, les likes, le nombre de commentaires).
https://www.instagram.com/apple/?__a=1
Par exemple
la source
Depuis la semaine dernière, Instagram a désactivé les
/media/
URL, j'ai mis en œuvre une solution de contournement, qui fonctionne plutôt bien pour le moment.Pour résoudre les problèmes de tout le monde dans ce fil, j'ai écrit ceci: https://github.com/whizzzkid/instagram-reverse-proxy
Il fournit toutes les données publiques d'Instagram en utilisant les points de terminaison suivants:
Obtenez le média utilisateur:
Obtenez le média utilisateur avec un nombre limité:
Utilisez JSONP:
L'API proxy ajoute également les URL de la page suivante et de la page précédente à la réponse afin que vous n'ayez pas besoin de calculer cela de votre côté.
J'espère que vous l'aimez!
Merci à @ 350D pour l'avoir repéré :)
la source
L'API Instagram nécessite une authentification de l'utilisateur via OAuth pour accéder au point de terminaison multimédia récent d'un utilisateur. Il ne semble pas y avoir d'autre moyen pour le moment d'obtenir tous les médias pour un utilisateur.
la source
Si vous cherchez un moyen de générer un jeton d'accès à utiliser sur un seul compte, vous pouvez essayer ceci -> https://coderwall.com/p/cfgneq .
J'avais besoin d'un moyen d'utiliser l'api instagram pour récupérer tous les derniers médias pour un compte particulier.
la source
Voici une des solutions de rails. C'est une sorte de porte dérobée, qui est en fait la porte d'entrée.
L'objet que vous récupérez varie selon qu'il s'agit ou non d'une recherche d'utilisateur ou d'une recherche de balises. J'obtiens les données comme ceci:
J'obtiens ensuite une autre page de résultats en construisant une URL de la manière suivante:
la source
Grâce au schéma d'API en constante évolution (et horriblement conçu) d'Instagram, la plupart des éléments ci-dessus ne fonctionneront plus à partir d'avril 2018.
Voici le dernier chemin d'accès pour accéder aux données de publication individuelles si vous interrogez leur API directement à l'aide de la
https://www.instagram.com/username/?__a=1
méthode.En supposant que vos
JSON
données renvoyées soient,$data
vous pouvez parcourir chaque résultat en utilisant les exemples de chemin suivants:Les principaux éléments de ce changement récent étaient
graphql
etedge_owner_to_timeline_media
.On dirait qu'ils vont supprimer cet accès à l'API pour les clients non `` professionnels '' en décembre 2018, alors profitez-en autant que vous le pouvez.
J'espère que ça aide quelqu'un;)
la source
JSFiddle
Javascript:
HTML:
CSS:
la source
Je veux juste ajouter à la réponse @ 350D, car c'était difficile pour moi de comprendre.
Ma logique dans le code est la suivante:
Lorsque j'appelle l'API pour la première fois, j'appelle uniquement
https://www.instagram.com/_vull_ /media/
. Lorsque je reçois une réponse, je vérifie la valeur booléenne demore_available
. Si c'est vrai, j'obtiens la dernière photo du tableau, j'obtiens son identifiant, puis j'appelle à nouveau l'API Instagram, mais cette foishttps://www.instagram.com/_vull_/media/?max_id=1400286183132701451_1642962433
.Chose importante à savoir ici, cet identifiant est l'identifiant de la dernière image du tableau. Ainsi, lorsque vous demandez maxId avec le dernier identifiant de l'image dans le tableau, vous obtiendrez les 20 prochaines images, et ainsi de suite.
J'espère que cela clarifiera les choses.
la source
Si vous contournez Oauth, vous ne saurez probablement pas de quel utilisateur Instagram il s'agit. Cela étant dit, il existe plusieurs façons d'obtenir des images Instagram sans authentification.
L'API d'Instagram vous permet de visualiser les images les plus populaires d'un utilisateur sans authentification. En utilisant le point de terminaison suivant: voici le lien
Fournit des flux rss instagram pour les balises à cette .
Les pages utilisateur d'Instagram sont publiques, vous pouvez donc utiliser PHP avec CURL pour obtenir leur page et un analyseur DOM pour rechercher dans le html les balises d'image que vous souhaitez.
la source
Encore une astuce, recherchez les photos par hashtags:
Où:
query_hash
- valeur permanente (je crois que son hachage de 17888483320059182, peut être changé à l'avenir)tag_name
- Le titre parle de lui-mêmefirst
- quantité d'articles à obtenir (je ne sais pas pourquoi, mais cette valeur ne fonctionne pas comme prévu. Le nombre réel de photos renvoyées est légèrement supérieur à la valeur multipliée par 4,5 (environ 110 pour la valeur 25, et environ 460 pour la valeur valeur 100))after
- id du dernier élément si vous souhaitez obtenir des éléments à partir de cet identifiant. La valeur de laend_cursor
réponse JSON peut être utilisée ici.la source
Eh bien, comme il ne
/?__a=1
fonctionne plus maintenant, il est préférable d'utiliser curl et d'analyser la page instagram comme indiqué à cette réponse: Générer un jeton d'accès à l'API Instagram, sans avoir à vous connecter?la source
Si vous souhaitez rechercher des utilisateurs sans avoir l'ID client et le jeton d'accès:
1: Si vous souhaitez rechercher tous les utilisateurs ayant vos noms similaires à votre mot de recherche:
remplacez SeachName par le texte que vous souhaitez rechercher:
https://www.instagram.com/web/search/topsearch/?query=SearchName
2: si vous souhaitez rechercher exactement le même nom d'utilisateur:
remplacez UserName par votre nom de recherche souhaité:
la source
Vous pouvez utiliser cette API pour récupérer les informations publiques de l'utilisateur instagram:
https://api.lityapp.com/instagrams/thebrainscoop?limit=2
Si vous ne définissez pas le paramètre limite, les messages sont limités à 12 par défaut
Cette api a été créé dans SpringBoot avec HtmlUnit comme vous pouvez le voir dans le code:
C'est un exemple de réponse:
la source
J'avais vraiment besoin de cette fonction mais pour Wordpress. Je m'adapte et cela a parfaitement fonctionné
la source
Le code nodejs ci-dessous extrait les images populaires d'une page Instagram. La fonction «ScrapeInstagramPage» prend en charge l'effet post-vieillissement.
Essayez-le ici
Exemple: Pour une URL ' https://www.instagram.com/dress_blouse_designer/ ', on peut appeler la fonction
la source
Cela fonctionne en utilisant un simple appel ajax et des chemins d'image itératifs.
la source
Voici un script php qui télécharge les images et crée un fichier html avec des liens sur les images. Crédit 350D pour la version php, ceci est juste élaboré .. Je suggérerais de mettre ceci est un travail cron et de tirer aussi souvent que vous en avez besoin. Vérifié fonctionnant en mai 2019 .
la source