Einführung in die Instagram-API

Dies ist das erste Tutorial einer Serienfokussierung (kein Wortspiel beabsichtigt) auf der Instagram API. Instagram ist der mobile Social-Photography-Service, der 2010 gegründet wurde und 2012 von Facebook für 1 Milliarde US-Dollar erworben wurde. So bauen Sie ein Startup!

Laut Pew Research nutzen 26% aller Erwachsenen im Erwachsenenalter Instagram. Außerdem "verwendet etwa die Hälfte der jungen Erwachsenen im Alter zwischen 18 und 29 Jahren (53%), die das Internet nutzen, Instagram. Und die Hälfte aller Nutzer (49%) nutzt die Website täglich."

Die Beliebtheit, Allgegenwart und visuelle Schönheit von Instagram machen es zu einer fesselnden und unterhaltsamen API für Entwickler. Ich habe mehr als 90 Tutorials für Tuts + geschrieben und einer der interessantesten war der Instagram-Teil meiner früheren zweiteiligen Serie "Potenzielle Zeugen Crime-Szene mit Social-Media-APIs suchen". In diesem Tutorial fanden wir vor mehr als zwei Jahren Augenzeugen eines Macklemore-Videoshootings:

In diesem Tutorial gebe ich Ihnen einen umfassenden Überblick darüber, was Sie mit der Instagram-API erreichen können und wie Sie damit beginnen. In zukünftigen Episoden werde ich Sie durch verschiedene nützliche Szenarien führen, die die API nutzen. In jeder Episode werde ich ein Code-Repository mit Beispielcode in meinem bevorzugten PHP-Framework Yii bereitstellen. Mehr über Yii erfahren Sie hier und in meiner Programmierung mit der Yii2-Serie (Tuts +)..

Ich nehme an den Diskussionen unten teil. Wenn Sie eine Frage oder ein Thema haben, schreiben Sie bitte einen Kommentar. Sie können mich auch auf Twitter @reifman erreichen oder mich direkt per E-Mail kontaktieren.

Was können Sie mit der Instagram-API tun?? 

Neben der Suche nach Augenzeugen gibt es noch eine Vielzahl anderer Möglichkeiten, die Sie mit der vielseitigen und leistungsfähigen API von Instagram tun können. Schauen Sie sich die 8 Möglichkeiten von Mashable zur Verwendung der Instagram-API an. Sie sind auch mit einigen interessanten Drittanbieter-Diensten verbunden, die bereits die API verwenden:

  • Instaprint bietet einen mit Instagram verbundenen Fotodrucker für Ihre Veranstaltungen.
  • Ereignisdiagramm ermöglicht die öffentliche Anzeige und Weitergabe von Instagram-Medien bei Ihren Veranstaltungen.
  • Casetify Mit dieser Option können Sie benutzerdefinierte Geräteabdeckungen von Ihrem Instagram-Konto aus drucken. 

Bei den Web-Service-APIs ist die Instagram-API robust und funktioniert nach meiner Erfahrung sehr gut (besser als die von Twitter). Ich fange damit an, einen umfassenden Überblick über die API zu geben, bevor ich tiefer gehe.

Lassen Sie uns die Endpunkte überprüfen.

Die Endpunkte

Die Endpunkte von Instagram repräsentieren eine Vielzahl von REST-basierten Web-Service-URLs für den Zugriff auf viele Funktionen von Instagram.

Benutzer

Mit dem Benutzerendpunkt können Sie Benutzer nach Namen suchen, grundlegende Informationen über sie suchen und die Medien in ihrem Newsfeed (Personen, denen sie auf Instagram folgen) sowie ihre eigenen Medienbeiträge und beliebte Medien anzeigen. Einige dieser Funktionen erfordern die spezifische Authentifizierung des Benutzers und andere können von jedem Entwickler verwendet werden.

Beziehungen

Mit dem Beziehungsendpunkt können Sie Follower-Listen abrufen (sowohl wer ein Benutzer folgt als auch denen, denen er folgt) sowie auf Beziehungsanforderungen reagieren und Änderungen an Beziehungen vornehmen.

Medien

Mit dem Medienendpunkt können Sie Informationen zu einem Instagram-Foto oder -Video abrufen. Es bietet auch Geosearch-Funktionen zum Auffinden von Medien, die zu einem bestimmten Zeitpunkt und an einem bestimmten Ort gepostet werden, wie wir dies beim Auffinden potenzieller Zeugen von Verbrechensszenen mit Social-Media-APIs getan haben. Außerdem können Sie beliebte Instagram-Beiträge abrufen. 

Hier ist ein Auszug des JSON-Codes für eine Beispielantwort 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": "ã ???? ã ?? ¼ã ?????????????????????????????????????????????????????????? ? ã ?? ¦ä½¿ã ?? £ ã ?? ¦ã ?? ¿???? ã ???? (^^) "," von ": " username ":" cocomiin "," vollständiger_name ":" "," type ":" Benutzer "," id ":" 1127272 "," id ":" 26329105 "," likes ": " count ": 35," data ": [" username ":" mikeyk "," full_name ":" Kevin S "," id ":" 4 "," profile_picture ":"… ", … Teilmenge der Freunde…]," link ":" http: / /instagr.am/p/BV5v_/ "," user ": " username ":" cocomiin "," full_name ":" Cocomiin "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles /profile_1127272_75sq_1296145633.jpg "," id ":" 1127272 "," create_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,

Kommentare, Likes und Tags

Wie zu erwarten, die Kommentare, Likes und TagsMit Endpunkten können Sie Kommentare, Likes und Tags für Medienelemente auflisten sowie diese auf Medien anwenden (oder deren Zuordnung aufheben).

Im Folgenden finden Sie eine Beispielantwort für das Abfragen der Medien mit dem Tag "snow" unter Verwendung des Endpunkts 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": "snow", "from": "username": "emohatch", "username": "Dave", "id": "1242695", "id" : "26589964", "created_time": "1296707889", "text": "#snow", "von": "Benutzername": "emohatch", "Benutzername": "Emo Hatch", "id": "1242695", "id": "26609649"], "count": 3 "caption": "created_time": "1296703540", "text": "#Snow", "from": "username ":" emohatch "," id ":" 1242695 "," id ":" 26589964 "," likes ": " count ": 1," data ": [" username ":" 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/ "," user ": " username ":" emohatch "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg "," id ":" 1242695 "," full_name ":" 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 ":" video "," videos ": " low_resolution ": " url ":" http: //distilleryvesper9-13.ak.instagram. de / 090d06dad9cd11e2aa0912313817975d_102.mp4 "," width ": 480," height ": 480," standard_resolution ": " url ":" http://distilleryvesper9-13.ak.instagram.com/090d0cd11ad04d04d10a04d10a09 width ": 640," height ": 640," users_in_photo ": null," filter ":" Vesper "," tags ": [" snow "]," comments ": " data ": [" Created_time " : "1279332030", "text": "Liebe das Zeichen hier", "von": "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 ":" Chilako taco "," von ": " username ":" kevin "," full_name ":" Kevin S "," id ":" 3 "," profile_picture ":"… "," id ":" 3 "]," count ": 2," caption ": null," likes ": " count ": 1," data ": [" username ":" mikeyk "," full_name ":" Mikeyk "," id ":" 4 "," profile_picture ":"… "]," link ":" http: // instagr .am / p / D / "," user ": " username ":" kevin "," full_name ":" Kevin S "," profile_picture ":"… "," id ":" 3 "," created_time " ":" 1279340983 "," images ": " low_resolution ": " url ":" http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_6.jpg "," width ": 306," height ": 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,…]

Standorte

Social Service-APIs wie Twitter und Instagram verfügen über eigene Place-Datenbanken. Instagram nennt diese Standorte. Mit den Standortendpunkten können Sie Standort-IDs im Instagram-Dienst über GPS-Koordinaten abrufen und nach Medien suchen, die von diesen Standort-IDs bereitgestellt werden.

Hier eine Beispielabfrage nach bekannten Orten (oder Orten) in der Nähe der GPS-Koordinaten des Eiffelturms: 

Instagram gibt seine Heimat-IDs für bekannte Orte in der Nähe zurück. Sie können dies beispielsweise bei anderen Standortabfragen verwenden, um Medienbeiträge aus Restaurant 58 Tour Eiffel zu finden. 

Authentifizierung

Wenn Sie Ihre Entwickleranwendung registriert haben, können Sie eine Vielzahl von Anforderungen nur mit Ihrem Zugriffsschlüssel erstellen. Zur Sicherung bestimmter Endpunkte und zur Bereitstellung privater Benutzerinformationen verwendet die Instagram-API das OAuth 2.0-Protokoll für die Authentifizierung.

Hier ein Beispiel für die Verwendung von OAuth aus der API-Konsole (weiter unten beschrieben):

Der Standardzugriff für OAuth ist schreibgeschützt. Mit Instagram können Sie den Benutzer jedoch bitten, weitere Berechtigungen über die folgenden Bereiche hinzuzufügen:

  • Bemerkungen: Kommentare im Namen eines Benutzers erstellen oder löschen (diese Berechtigung ist nur für genehmigte Apps verfügbar).
  • Beziehungen: Folgen Sie Benutzern im Namen eines Benutzers, und folgen Sie diesen nicht.
  • Likes: zu mögen und im Gegensatz zu Artikeln im Namen eines Benutzers.

Sie können jetzt mehr über die Implementierung von Instagram OAuth erfahren oder auf kommende Episoden dieser Serie warten. 

Echtzeitdienste

Mit der Instagram-Echtzeit-API können Sie Ereignisse abonnieren, um Live-Aktivitäten für Benutzer, Tags, Standorte (die nativen Orts-IDs von Instagram) und GPS-Bereiche zu überwachen:

  • Benutzer: Erhalten Sie Benachrichtigungen, wenn Benutzer, die sich bei Ihrer Anwendung registriert haben, neue Fotos posten. Dies erfordert eine Authentifizierung bei Ihrer Anwendung.
  • Stichworte: Erhalten Sie Benachrichtigungen, wenn ein neues Foto mit Tags Ihrer Wahl versehen wird.
  • Standorte: Benachrichtigungen erhalten, wenn neue Fotos gepostet und mit einem bestimmten Ort versehen werden (Orts-ID).
  • Geografien: Erhalten Sie Benachrichtigungen, wenn neue Fotos an einem beliebigen geografischen Ort gepostet werden, der durch einen Mittelpunkt und einen Radius definiert wird.

Für den Echtzeitzugriff schlägt Instagram die Verwendung von Tornado oder Node.js auf Python-Basis vor. Wahrscheinlich gibt es auch Lektionen, die Sie von Phirehose lernen können, dem in PHP integrierten Echtzeit-Twitter-Framework.

Für Echtzeit-Updates registrieren Sie einen eigenen Callback-Endpunkt, z. eine URL Hier ist ein Beispiel-Post von Abonnement-Updates von Instagram zu einem Callback-Endpunkt:

["subscription_id": "1", "object": "user", "object_id": "1234", "changed_aspect": "media", "time": 1297286541, "Subscribe_id": "2", "object": "tag", "object_id": "nofilter", "changed_aspect": "media", "time": 1297286541,…]

Der erste ist ein neuer Medienbeitrag eines von Ihnen abonnierten Benutzer-Feeds. Der zweite ist ein neuer Medienbeitrag zu einem Tag-Abonnement.

Die API-Konsole

Um Ihnen den Einstieg und das Debugging zu erleichtern, verfügt Instagram über eine API-Konsole, die von Apigee unterstützt wird:

Sie können die Ergebnisse auch teilen und einbetten:

Fehler melden

Sobald Sie sich als Entwickler registriert haben, können Sie API-Probleme einfach dem Instagram-Team melden:

Welche Plattformen unterstützt die Instagram-API??

Sie können von jeder Plattform aus auf die Instagram-API zugreifen, indem Sie die REST-Endpunkte verwenden. Instagram bietet Bibliotheken für Python und Ruby. Packagist bietet eine Reihe von Community-Bibliotheken für Instagram für PHP an. IBM hat auch eine Anleitung zur Verwendung von Vanilla PHP mit Instagram.

Regeln der Straße

Nutzungsbedingungen

Instagram-Nutzer behalten das Eigentum an ihren Fotos und Videos. Da das Urheberrecht für das Urheberrecht so wichtig ist, sagt Instagram: "Es liegt in Ihrer Verantwortung, dafür zu sorgen, dass Sie dieses Recht respektieren." 

Sie dürfen die Instagram-Anwendungserfahrung auch nicht replizieren. Stattdessen zu innovieren.

Bevor Sie mit der Verwendung der API beginnen, haben wir einige Richtlinien, über die wir Sie informieren möchten. Sie können die vollständigen API-Nutzungsbedingungen hier lesen.

Rate Limits

Wie bei jeder Web-Services-API gibt es Ratenlimits, die Sie einhalten oder blockieren müssen. Beispielsweise sind Anwendungen auf 5.000 Anrufe pro Stunde beschränkt.

Was kommt als nächstes?

Ich hoffe, Sie sind neugierig darauf, die Instagram-API zu verwenden. In der nächsten Episode werde ich Sie durch alles führen, was Sie benötigen, um Endpunktanfragen zu erstellen. Wenn Sie sofort loslegen möchten, können Sie nach potenziellen Tatortzeugen mit Social Media-APIs suchen. 

Bitte zögern Sie nicht, unten Ihre Fragen und Kommentare zu posten. Sie können mich auch auf Twitter @reifman erreichen oder mich direkt per E-Mail kontaktieren. Sie können auch meine Tuts + Instructor-Seite durchsuchen, um andere Tutorials zu sehen, die ich geschrieben habe. 

ähnliche Links

  • Instagram
  • Die Instagram-API
  • Der Instagram Developers Blog
  • Suche nach potenziellen Tatortzeugen mit Social-Media-APIs