Ceci est le premier tutoriel d’une série (sans jeu de mots) sur l'API Instagram. Instagram est le service de photographie sociale mobile créé en 2010 et acquis par Facebook pour 1 milliard de dollars en 2012. C'est ainsi que vous créez une startup!
Selon Pew Research, 26% de tous les adultes en ligne utilisent Instagram. En outre, "environ la moitié des jeunes adultes de 18 à 29 ans qui utilisent Internet sur Internet (53%) utilisent Instagram. Et la moitié de tous les utilisateurs (49%) utilisent le site quotidiennement".
La popularité, l'omniprésence et la beauté visuelle d'Instagram en font une API attrayante et amusante à explorer. J'ai écrit plus de 90 tutoriels pour Tuts + et l'un des plus intéressants est sans aucun doute la partie Instagram de ma précédente série en deux parties, Localiser les témoins de scènes de crimes potentiels avec les API de médias sociaux. Dans ce tutoriel, nous avons trouvé des témoins visuels d'un tournage vidéo de Macklemore plus de deux ans plus tôt:
Dans ce tutoriel, je vais vous donner un aperçu général de ce que vous pouvez faire avec l’API Instagram et comment commencer. Dans les prochains épisodes, je vous expliquerai une variété de scénarios utiles exploitant l'API. Dans chaque épisode, je fournirai un référentiel de code avec un exemple de code dans mon framework PHP préféré, Yii. Vous pouvez en apprendre plus sur Yii ici et dans ma programmation avec Yii2 Series (Tuts +).
Je participe aux discussions ci-dessous. Si vous avez une question ou une suggestion de sujet, veuillez poster un commentaire ci-dessous. Vous pouvez également me joindre sur Twitter @reifman ou m'envoyer un email directement.
En plus de trouver des témoins oculaires, vous pouvez faire beaucoup d'autres choses avec l'API polyvalente et puissante d'Instagram. Découvrez les 8 façons d'utiliser les API de Instagram de Mashable. Ils se connectent également à des services tiers intéressants utilisant déjà l'API:
En ce qui concerne les API de service Web, l’API Instagram est robuste et, selon mon expérience, fonctionne très bien (mieux que celle de Twitter). Je vais commencer par donner un aperçu général de l'API avant d'approfondir.
Passons en revue les points finaux.
Les points de terminaison Instagram représentent une variété d'URL de services Web basés sur REST permettant d'accéder à une grande partie des fonctionnalités globales d'Instagram..
Le point de terminaison Utilisateurs vous permet de rechercher des utilisateurs par nom, de rechercher des informations de base à leur sujet et de voir les médias dans leur flux d’actualités (les personnes qu’ils suivent sur Instagram), ainsi que leurs propres publications et leurs médias préférés. Certaines de ces fonctionnalités nécessitent une authentification spécifique de l'utilisateur et d'autres peuvent être utilisées par tout développeur..
Le point de terminaison Relations vous permet de récupérer des listes de suiveurs (qui sont suivies par un utilisateur et par qui il est suivi), ainsi que de répondre aux demandes de relation et de modifier les relations..
Avec le point de terminaison multimédia, vous pouvez récupérer des informations sur une photo ou une vidéo Instagram. Il fournit également des fonctionnalités de géo-recherche pour trouver des médias postés à une heure et à un endroit spécifiques, comme nous l'avons fait dans la section Localisation des témoins potentiels de scènes de crime avec les API de médias sociaux. Il vous permet également de récupérer des publications Instagram populaires.
Voici un extrait de code JSON pour un exemple de réponse à https://api.instagram.com/v1/media/popular?access_token=ACCESS-TOKEN
:
"data": ["type": "image", "users_in_photo": [], "filter": "Gotham", "tags": [], "comments": …, "caption": "created_time": "1296656006", "text": "ã ???? ã ?? ¼ã ???? ?? ¥ ã ?? ¢ ã ???? ã ?? ãå ªå§ ?? ã ??? ? ã ?? ¦ä½¿ã ?? £ ã ?? ¦ã ?? ¿ã ???? ã ???? (^^) "," à partir de ": " nom d'utilisateur ":" cocomiin "," nom_complet ":" "," type ":" utilisateur "," id ":" 1127272 "," id ":" 26329105 "," aime ": " count ": 35," data ": [" nom d'utilisateur ":" mikeyk "," full_name ":" Kevin S "," id ":" 4 "," profile_picture ":"… ", … sous-ensemble de likers…]," link ":" http: / /instagr.am/p/BV5v_/ "," utilisateur ": " nom d'utilisateur ":" cocomiin "," nom complet ":" Cocomiin "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles /profile_1127272_75sq_1296145633.jpg "," id ":" 1127272 "," created_time ":" 1296655883 "," images ": " low_resolution ": " url ":" http://distillery.s3.amazonaws.com/ media, 2011/02/01 / 34d027f155204a1f98dde38649a752ad_6.jpg "," width ": 306," height ": 306," thumbnail ": " url ":" http://distillery.s3.amazonaws.com/media/ 2011/02 /01/34d027f155204a1f98dde38649a752ad_5.jpg "," width ": 150," height ": 150," standard_resolution ": " url ":" http://distillery.s3.amazonaws.com/media/2011/02/01 /34d027f155204a1f98dde38649a752ad_7.jpg "," width ": 612," height ": 612," id ":" 22518783 "," location ": null,
Comme vous vous en doutez, les commentaires, les goûts et les tagsLes points de terminaison vous permettent d'énumérer les commentaires, les préférences et les balises des éléments multimédias, ainsi que de les appliquer (ou de ne pas les appliquer) aux médias.
Par exemple, voici un exemple de réponse à une requête de média étiqueté "neige" à l'aide du noeud final https://api.instagram.com/v1/tags/snow/media/recent?access_token=ACCESS-TOKEN:
"data": ["type": "image", "users_in_photo": [], "filter": "Earlybird", "tags": ["snow"], "comments": "data": [ "created_time": "1296703540", "text": "Neige", "à partir de": "nom d'utilisateur": "emohatch", "nom d'utilisateur": "Dave", "id": "1242695", "id" : "26589964", "created_time": "1296707889", "text": "#snow", "de": "nom d'utilisateur": "emohatch", "nom d'utilisateur": "Emo Hatch", "id": "1242695", "id": "26609649"], "count": 3 "caption": "created_time": "1296703540", "text": "#Snow", "à partir de": "nom d'utilisateur ":" emohatch "," id ":" 1242695 "," id ":" 26589964 "," aime ": " count ": 1," data ": [" nom d'utilisateur ":" mikeyk "," full_name ":" Mike Krieger "," id ":" 4 "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg "]," link ":" http: //instagr.am/p/BWl6P/ "," utilisateur ": " nom d'utilisateur ":" emohatch "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg ",", " id ":" 1242695 "," nom complet ":" Dave "," created_time ":" 1296703536 "," i mages ": " low_resolution ": " url ":" http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_6.jpg "," width ": 306," height ": 306 , "thumbnail": "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_5.jpg", "width": 150, "height": 150, "standard_resolution": "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_7.jpg", "width": 612, "height": 612, " id ":" 22699663 "," location ": null, " type ":" vidéo "," vidéos ": " résolution basse ": " url ":" http: //distilleryvesper9-13.ak.instagram. com / 090d06dad9cd11e2aa0912313817975d_102.mp4 "," width ": 480," height ": 480," standard_resolution ": " url ":" http://distilleryvesper9-13.ak.instagram.com/090d06dad99dd9e9a914929914929914929914929914929 avec le système de gestion de contenu width ": 640," height ": 640," users_in_photo ": null," filter ":" Vesper "," tags ": [" neige "]," comments ": " data ": [" created_time " : "1279332030", "text": "J'aime le signe ici", "à partir de": "userna me ":" mikeyk "," full_name ":" Mikey Krieger "," id ":" 4 "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg "," id ":" 8 ", " created_time ":" 1279341004 "," text ":" Taco Chilako "," à partir de ": " nom d'utilisateur ":" kevin "," nom_principal ":" Kevin S "," id ":" 3 "," profile_picture ":"… "," id ":" 3 "]," nombre ": 2," légende ": null," aime ": " nombre ": 1," data ": [" nom d'utilisateur ":" mikeyk "," nom complet ":" Mikeyk "," id ":" 4 "," profile_picture ":"… "]," link ":" http: // instagr .am / p / D / "," utilisateur ": " nom d'utilisateur ":" kevin "," nom complet ":" Kevin S "," image_profil ":"… "," id ":" 3 "," heure_créé ":" 1279340983 "," images ": " low_resolution ": " url ":" http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_6.jpg "," largeur ": 306," hauteur ": 306," hauteur ": 306 , "thumbnail": "url": "http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_5.jpg", "width": 150, "height": 150, "standard_resolution": "url": "http: //distilleryimage2.ak.i nstagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_7.jpg "," width ": 612," height ": 612," id ":" 3 "," location ": null,…]
Les API de services sociaux telles que Twitter et Instagram ont leurs propres bases de données Place. Instagram appelle ces lieux. Les points de terminaison Location vous permettent de rechercher les identifiants de localisation dans le service Instagram à l'aide des coordonnées GPS et de rechercher les médias postés à partir de ces identifiants de localisation..
Voici un exemple de requête pour des lieux connus situés à proximité des coordonnées GPS de la Tour Eiffel:
Instagram renvoie ses identifiants d'emplacement natif pour les lieux connus à proximité. Par exemple, vous pouvez l’utiliser avec d’autres requêtes de localisation pour rechercher des publications dans les médias de Restaurant 58 Tour Eiffel..
Une fois que vous avez enregistré votre application de développement, vous pouvez effectuer une grande variété de demandes en utilisant uniquement votre clé d'accès. Cependant, pour sécuriser des points de terminaison spécifiques et fournir des informations sur les utilisateurs privés, l'API d'Instagram utilise le protocole OAuth 2.0 pour l'authentification..
Voici un exemple d'utilisation de OAuth à partir de la console de l'API (décrite plus en détail ci-dessous):
L'accès OAuth par défaut est en lecture seule, mais Instagram vous permet de demander à l'utilisateur d'ajouter d'autres autorisations via ces étendues:
Vous pouvez en savoir plus sur la mise en œuvre d'OAuth d'Instagram maintenant ou attendre les prochains épisodes de cette série..
Avec l'API Instagram en temps réel, vous pouvez vous abonner à des événements pour surveiller l'activité en direct des utilisateurs, des tags, des emplacements (identifiants de lieu d'origine Instagram) et des zones GPS:
Pour un accès en temps réel, Instagram suggère d'utiliser Tornado ou Node.js. sur Python. Il y a probablement aussi des leçons à tirer de Phirehose, le framework Twitter en temps réel construit en PHP.
Pour les mises à jour en temps réel, vous enregistrez un point de terminaison de rappel, par exemple. une URL. Voici un exemple de publication de mises à jour d'abonnement depuis Instagram vers un point de terminaison de rappel:
["subscription_id": "1", "object": "utilisateur", "object_id": "1234", "modified_aspect": "media", "time": 1297286541, "subscription_id": "2", "objet": "tag", "object_id": "nofilter", "modified_aspect": "media", "time": 1297286541,…]
Le premier est une publication d'un nouveau média par un utilisateur auquel vous êtes abonné. Le second est un nouveau média post sur un abonnement tag..
Pour vous aider à démarrer et à déboguer, Instagram dispose d'une console API optimisée par Apigee:
Vous pouvez également partager et intégrer les résultats:
Une fois inscrit en tant que développeur, vous pouvez facilement signaler les problèmes d'API à l'équipe Instagram:
Vous pouvez accéder à l'API Instagram avec n'importe quelle plate-forme à l'aide de ses points de terminaison REST. Instagram fournit des bibliothèques pour Python et Ruby. Packagist propose un certain nombre de bibliothèques de communauté pour Instagram pour PHP. IBM propose également un guide d'utilisation de PHP vanille avec Instagram.
Les utilisateurs d'Instagram conservent la propriété de leurs photos et vidéos. Parce que le droit d’auteur est essentiel au droit d’auteur, Instagram déclare: «C’est votre responsabilité de vous assurer de respecter ce droit.
Vous n'êtes également pas autorisé à reproduire l'expérience d'application Instagram. Innover à la place.
Avant de commencer à utiliser l'API, nous aimerions vous informer de quelques directives. Vous pouvez lire les conditions d'utilisation complètes de l'API ici.
Comme pour toute API de services Web, vous devez respecter certaines restrictions tarifaires ou être bloqué. Par exemple, les applications sont limitées à 5 000 appels par heure..
J'espère que vous êtes intrigués pour commencer à utiliser l'API Instagram. Dans le prochain épisode, je vous guiderai à travers tout ce dont vous avez besoin pour commencer à faire des requêtes de points de terminaison. Si vous souhaitez commencer immédiatement, vous pouvez consulter la rubrique Localisation de témoins potentiels de scènes de crimes avec les API de médias sociaux..
N'hésitez pas à poster vos questions et commentaires ci-dessous. Vous pouvez également me joindre sur Twitter @reifman ou m'envoyer un courriel directement. Vous pouvez également parcourir ma page d’instructeur Tuts + pour voir les autres tutoriels que j’ai écrits..