Introduksjon til Instagram API

Dette er den første opplæringen av en seriefokusering (Beklager ordspillet) på Instagram API. Instagram er mobil sosialfotograferingstjeneste grunnlagt i 2010 og kjøpt av Facebook for 1 milliard dollar i 2012. Slik bygger du opp oppstart!

Ifølge Pew Research bruker 26% av alle online voksne Instagram. I tillegg bruker omtrent halvparten av internettbrukende unge voksne i alderen 18-29 (53%) Instagram. Og halvparten av alle brukere (49%) bruker nettstedet daglig. "

Populariteten, ubiquity og visuell skjønnhet Instagram gjør det til en overbevisende og morsom API for utviklere å utforske. Jeg har skrevet mer enn 90 opplæringsprogrammer for Tuts +, og langt en av de mest interessante var Instagram-delen av min tidligere todelte serie, Locating Potential Crime Scene-vitner med Social Media APIs. I den opplæringen fant vi øyenvitner til et Macklemore-videoopptak mer enn to år tidligere:

I denne veiledningen gir jeg deg en bred oversikt over hva du kan gjøre med Instagram API og hvordan du kommer i gang. I fremtidige episoder vil jeg gå gjennom en rekke nyttige scenarier som bruker APIen. I hver episode vil jeg gi et kodeoppbevaringssted med prøvekode i min favoritt PHP-rammeverk, Yii. Du kan lære mer om Yii her og i min programmering med Yii2-serien (Tuts +).

Jeg deltar i diskusjonene nedenfor. Hvis du har et spørsmål eller et emneforslag, vennligst legg inn en kommentar nedenfor. Du kan også nå meg på Twitter @ reifman eller email meg direkte.

Hva kan du gjøre med Instagram API? 

I tillegg til å finne øyenvitner er det et myriade av andre ting du kan gjøre med Instagrams allsidige og kraftige API. Sjekk ut Mashables 8 måter å bruke Instagrams API. De kobler også til noen interessante tredjepartstjenester som allerede bruker API:

  • Instaprint Gir en Instagram-tilkoblet fotoprinter for hendelsene dine.
  • Eventstagram gir offentlig visning og deling av Instagram media på hendelsene dine.
  • Casetify lar deg skrive ut egendefinerte enhetsdeksler fra Instagram-kontoen din. 

Som API for API-tjenester går Instagram-APIen, og i min erfaring fungerer det veldig bra (bedre enn Twitter). Jeg begynner med å gi en bred oversikt over API før du går dypere.

La oss se gjennom endpoengene.

Endpoints

Instagrams endepunkter representerer en rekke REST-baserte webtjenesteadresser for å få tilgang til mye av Instagrams generelle funksjonalitet.

brukere

Brukerens sluttpunkt lar deg søke etter brukere etter navn, slå opp grunnleggende informasjon om dem, og se media i deres newsfeed (folk de følger på Instagram), samt egne medieposter og likte medier. Noen av disse funksjonene krever brukerens spesifikke godkjenning, og andre kan brukes av enhver utvikler.

Forhold

Forholdets sluttpunkt lar deg hente følgesedler (både som en bruker følger og hvem de blir etterfulgt av), samt svare på forholdsforespørsler og gjøre endringer i forhold.

Media

Med medieendipunktet kan du hente informasjon om et Instagram-bilde eller en video. Det gir også geosearch-muligheter for å finne media som er lagt ut fra en bestemt tid og sted, som vi gjorde i å finne potensielle kriminalitetsvitenskapere med sosiale medier-APIer. Den lar deg også hente populære Instagram-innlegg. 

Her er et utdrag av JSON kode for et eksempel svar på https://api.instagram.com/v1/media/popular?access_token=ACCESS-TOKEN:

"data": ["type": "bilde", "users_in_photo": [], "filter": "Gotham", "tags": [], "kommentarer": ..., "bildetekst" "created_time": "1296656006", "text": "ã ???? ã ?? ¼ã ???? â ?? ã ?? ?? ? ã ?? | ã ?? ã ?? ã ã ?? ?? ã ?? ¿ã ???? ã ???? (^^) "," fra ": " brukernavn ":" cocomiin "," full_name "" "", "type": "bruker", "id": "1127272", "id": "26329105", "liker": "count": 35, "data": ["brukernavn ":" mikeyk "," full_name ":" Kevin S "," id ":" 4 "," profile_picture ":" ... ", ... delmengde av likers ...]," link ":" http: / /instagr.am/p/BV5v_/ "," user ": " brukernavn ":" cocomiin "," full_name ":" Cocomiin "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles /profile_1127272_75sq_1296145633.jpg "," id ":" 1127272 "," created_time ":" 1296655883 "," bilder ": " low_resolution ": " url ":" http://distillery.s3.amazonaws.com/ media / 2011/02/01 / 34d027f155204a1f98dde38649a752ad_6.jpg "," bredde ": 306," høyde ": 306," miniatyrbilde ": " url ":" http://distillery.s3.amazonaws.com/media/ 2011/02 /01/34d027f155204a1f98dde38649a752ad_5.jpg "," bredde ": 150," høyde ": 150," standard_resolution ": " url ":" http://distillery.s3.amazonaws.com/media/2011/02/01 /34d027f155204a1f98dde38649a752ad_7.jpg "," bredde ": 612," høyde ": 612," id ":" 22518783 "," plassering ": null,

Kommentarer, Likes and Tags

Som du forventer, kommentarene, liker og merkerEndpoints gir deg mulighet til å oppsummere kommentarer, liker og tagger for medieobjekter, samt å søke (eller unapplying) disse til media.

For eksempel, her er et eksempel på spørring for mediemerket "snø" ved hjelp av sluttpunktet https://api.instagram.com/v1/tags/snow/media/recent?access_token=ACCESS-TOKEN:

"data": ["type": "bilde", "users_in_photo": [], "filter": "Earlybird", "tags": ["snø"], "kommentarer": "data" "created_time": "1296703540", "tekst": "Snø", "fra": "brukernavn": "emohatch", "brukernavn": "Dave", "id": "1242695", "id" : "26589964", "created_time": "1296707889", "tekst": "#snow", "from": "brukernavn": "emohatch", "brukernavn": "Emo Hatch", "id" "1242695", "id": "26609649"], "count": 3 "bildetekst": "created_time": "1296703540", "tekst": "#Snow", "from": "brukernavn ":" emohatch "," id ":" 1242695 "," id ":" 26589964 "," liker ": " count ": 1," data ": [" brukernavn ":" 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 ": " brukernavn ":" emohatch "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg "," id ":" 1242695 "," full_name ":" Dave "," created_time ":" 1296703536 "," jeg 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 "," plassering ": null, " type ":" video "," videoer ": " low_resolution ": " url ":" http: //distilleryvesper9-13.ak.instagram. com / 090d06dad9cd11e2aa0912313817975d_102.mp4 "," bredde ": 480," høyde ": 480," standard_resolution ": " url ":" http://distilleryvesper9-13.ak.instagram.com/090d06dad9cd11e2aa0912313817975d_101.mp4 "," bredde ": 640," høyde ": 640," users_in_photo ": null," filter ":" Vesper "," tags ": [" snø "]," kommentarer ": " data ": [" created_time " : "1279332030", "tekst": "Love the sign here", "from": "brukeren meg ":" 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 "," tekst ":" Chilako taco "," fra ": " brukernavn ":" kevin "," full_name ":" Kevin S " ":" 3 "," profile_picture ":" ... "," id ":" 3 "]," telle ": 2," bildetekst ": null," liker ": " count ": 1," data ": [" brukernavn ":" mikeyk "," full_name ":" Mikeyk "," id ":" 4 "," profile_picture ":" ... "]," link ":" http: // instagr .am / p / D / "," bruker ": " brukernavn ":" kevin "," full_name ":" Kevin S "," profile_picture ":" ... "," id ":" 3 "," created_time ":" 1279340983 "," bilder ": " low_resolution ": " url ":" http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_6.jpg "," width ": 306," høyde ": 306 , "thumbnail": "url": "http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_5.jpg", "width": 150, "høyde": 150, "standard_resolution": "url" "http: //distilleryimage2.ak.i nstagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_7.jpg "," bredde ": 612," høyde ": 612," id ":" 3 "," plassering ": null, ...]

steder

Sosialtjeneste-APIer som Twitter og Instagram har sine egne Place-databaser. Instagram kaller disse stedene. Lokasjonsendepunktene lar deg slå opp plasserings-ID-er i Instagram-tjenesten ved hjelp av GPS-koordinat og finne media som er lagt ut fra disse sted-IDene.

Her er et eksempel på kjente steder (eller steder) i nærheten av Eiffeltårnets GPS-koordinater: 

Instagram returnerer sine ID-adresser for kjente steder i nærheten. For eksempel kan du bruke dette med andre stedsforespørsler for å finne medieposter fra Restaurant 58 Tour Eiffel. 

Godkjenning

Når du registrerer utviklerprogrammet ditt, kan du gjøre et bredt utvalg av forespørsler ved å bruke bare tilgangsnøkkelen din. For å sikre bestemte endpoeng og gi privat brukerinformasjon bruker Instagrams API imidlertid OAuth 2.0-protokollen for godkjenning.

Her er et eksempel bruk av OAuth fra API-konsollen (beskrevet nærmere nedenfor):

Standard OAuth-tilgang er kun for skrivebeskyttet, men Instagram lar deg be brukeren å legge til andre tillatelser via disse rekkeviddeene:

  • kommentarer: å opprette eller slette kommentarer på vegne av en bruker (denne tillatelsen er bare begrenset til godkjente apps).
  • Forhold: å følge og ufølge brukere på vegne av en bruker.
  • liker: å like og i motsetning til ting på vegne av en bruker.

Du kan lære mer om implementeringen av Instagrams OAuth nå, eller vent på kommende episoder av denne serien. 

Real-Time Services

Med Instagram Real-Time API kan du abonnere på hendelser for å overvåke levende aktivitet for brukere, koder, steder (Instagrams opprinnelige sted-IDer) og GPS-områder:

  • brukere: Motta varsler når brukere som har registrert i søknaden din, legger inn nye bilder. Dette krever godkjenning med søknaden din.
  • Tags: Motta varsler når et nytt bilde er merket med merker du velger.
  • steder: Motta varsler når nye bilder blir lagt ut og merket med et bestemt sted (sted-ID).
  • geografi: Motta varsler når nye bilder blir lagt inn i en vilkårlig geografisk plassering som definert av et midtpunkt og en radius.

For sanntids tilgang foreslår Instagram å bruke Python-baserte Tornado eller Node.js. Det er sannsynligvis også leksjoner du kan lære av Phirehose, real-time Twitter-rammen som er bygd i PHP.

For sanntidsoppdateringer registrerer du et eget tilbakekallingspunkt, f.eks. en nettadresse. Her er et eksempel på abonnementsoppdateringer fra Instagram til et tilbakekallingspunkt:

["subscription_id": "1", "object": "user", "object_id": "1234", "changed_aspect": "media", "tid": 1297286541, "subscription_id": "2" "objekt": "tag", "object_id": "nofilter", "changed_aspect": "media", "tid": 1297286541, ...]

Den første er et nytt mediepost av en brukerfeed du abonnerer på. Den andre er et nytt mediepost til et tag-abonnement.

API-konsollen

For å hjelpe deg med å komme i gang og feilsøke, har Instagram en API-konsoll drevet av Apigee:

Du kan også dele og integrere resultatene:

Rapportering av feil

Når du har registrert deg som en utvikler, kan du enkelt rapportere API-problemer til Instagram-teamet:

Hvilke plattformer har Instagram API Support?

Du kan få tilgang til Instagram API med hvilken som helst plattform som bruker sine REST-endepunkter. Instagram gir biblioteker til Python og Ruby. Packagist tilbyr en rekke fellesskapsbiblioteker for Instagram for PHP. IBM har også en veiledning for å bruke vanilla PHP med Instagram.

Veibeskrivelse

Vilkår for bruk

Instagram-brukere opprettholder eierskap av sine bilder og videoer. Siden opphavsrett er så viktig for opphavsrett, sier Instagram, "Det er ditt ansvar å sørge for at du respekterer den rette." 

Du har heller ikke lov til å gjenta Instagram-programopplevelsen. Innovere i stedet.

Før du begynner å bruke API, har vi noen retningslinjer som vi ønsker å fortelle om. Du kan lese de fullstendige API-vilkårene for bruk her.

Rate Limits

Som med en hvilken som helst webtjenester-API, er det grenseverdier som du må overholde eller være blokkert. For eksempel er applikasjoner begrenset til 5000 samtaler per time.

Hva blir det neste?

Jeg håper du er interessert i å begynne å bruke Instagram API. I neste episode vil jeg veilede deg gjennom alt du trenger for å komme i gang med å lage endpoint-forespørsler. Hvis du ønsker å komme i gang umiddelbart, kan du sjekke ut Locating Potential Crime Scene-vitner med Social Media APIs. 

Ta gjerne inn dine spørsmål og kommentarer nedenfor. Du kan også nå meg på Twitter @ reifman eller email meg direkte. Du kan også bla gjennom min Tuts + instruktørside for å se andre opplæringsprogrammer jeg har skrevet. 

Relaterte linker

  • Instagram
  • Instagram API
  • The Instagram Developers Blog
  • Plassering av potensielle kriminalitetsscene vitner med sosiale medier-APIer