Acesta este primul tutorial al unei serii de focalizare (nu este destinat jocului) pe API-ul Instagram. Instagram este serviciul mobil de fotografie socială fondat în 2010 și achiziționat de Facebook pentru 1 miliard de dolari în 2012. Așa construiești un startup!
Potrivit studiului Pew Research, 26% dintre adulții online folosesc Instagram. În plus, aproximativ jumătate dintre tinerii cu vârste cuprinse între 18 și 29 de ani (53%) utilizează Instagram și jumătate dintre utilizatori (49%) utilizează zilnic site-ul.
Popularitatea, ubicuitatea și frumusețea vizuală a Instagram îl transformă într-un API convingător și distractiv pentru dezvoltatori de a explora. Am scris mai mult de 90 de tutoriale pentru Tuts + și de departe una dintre cele mai interesante a fost partea Instagram a seriei anterioare din două părți, Localizarea potențialilor criminali ai martorilor cu API-urile sociale. În acest tutorial, am descoperit martori oculari la un film Macklemore cu mai mult de doi ani mai devreme:
În acest tutorial, vă vom oferi o prezentare generală a ceea ce puteți face cu API-ul Instagram și cum să începeți. În episoadele viitoare, vă voi trece printr-o varietate de scenarii utile care utilizează API-ul. În fiecare episod, voi furniza un depozit de cod cu un exemplu de cod în cadrul meu preferat PHP, Yii. Puteți afla mai multe despre Yii aici și în programarea mea cu seria Yii2 (Tuts +).
Particip la discuțiile de mai jos. Dacă aveți o sugestie de întrebare sau subiect, vă rugăm să postați un comentariu de mai jos. Puteți să mă contactați și pe Twitter @reifman sau să mă trimiteți direct prin e-mail.
În plus față de găsirea martorilor oculari, există o mulțime de alte lucruri pe care le puteți face cu API-ul versatil și puternic al Instagram. Verificați cele 8 modalități de utilizare a API-ului Instagram de către Mashable. De asemenea, acestea fac legătura cu unele servicii interesante de la terțe părți care utilizează deja API-ul:
Ca API-uri de servicii web, API-ul Instagram este robust și, din experiența mea, funcționează foarte bine (mai bine decât Twitter). Voi începe prin a oferi o privire de ansamblu asupra API înainte de a merge mai adânc.
Să examinăm punctele finale.
Punctele finale ale produsului Instagram reprezintă o varietate de adrese URL de servicii web bazate pe REST pentru a accesa o mare parte din funcționalitatea generală a Instagram.
Obiectivul End users vă permite să căutați utilizatorii după nume, să căutați informații de bază despre ei și să vedeți mass-media în newsfeed-ul lor (persoanele pe care le urmează pe Instagram), precum și propriile lor postări media și media preferate. Unele dintre aceste caracteristici necesită autentificarea specifică a utilizatorului, iar altele pot fi folosite de orice dezvoltator.
Parametrul final pentru relații vă permite să preluați listele de participanți (atât utilizatorii care urmează, cât și cei pe care îi urmează), precum și să răspundă solicitărilor de relații și să facă schimbări în relații.
Cu punctul final Media, puteți prelua informații despre o fotografie sau un videoclip Instagram. De asemenea, oferă capabilități geosearch pentru a găsi mass-media postate dintr-un anumit moment și loc, așa cum am făcut-o în localizarea potențialilor criminali cu ajutorul API-urilor sociale. De asemenea, vă permite să preluați posturile populare din Instagram.
Iată un extras din codul JSON pentru un exemplu de răspuns https://api.instagram.com/v1/media/popular?access_token=ACCESS-TOKEN
:
"date": ["tip": "imagine", "users_in_photo": [], "filtru": "Gotham" "created_time": "1296656006", "text": "ã ???????????????????????????????????????????????????????????????????????????????? "," de la ": " username ":" cocomiin "," full_name " "", "id": "26329105", "likes": "count": 35, "data": [" ":" mikeyk "," full_name ":" Kevin S "," id ":" 4 "," profile_picture ":" ... ", ... subset of likers ... /instagr.am/p/BV5v_/ "," utilizator ": " username ":" cocomiin "," full_name ":" Cocomiin "," profile_picture ":" http://distillery.s3.amazonaws.com/profiles /profile_1127272_75sq_1296145633.jpg "," id ":" 1127272 "," created_time ":" 1296655883 "," imagini ": " low_resolution ": " url ":" http://distillery.s3.amazonaws.com/ media / 2011/02/01 / 34d027f155204a1f98dde38649a752ad_6.jpg "," lățime ": 306," înălțime ": 306," thumbnail ": " url ":" http://distillery.s3.amazonaws.com/media/ 2011/02 /01/34d027f155204a1f98dde38649a752ad_5.jpg "," lățime ": 150," înălțime ": 150," standard_resolution ": " url ":" http://distillery.s3.amazonaws.com/media/2011/02/01 "Id": "22518783", "locație": null, "id": "22518783",
După cum v-ați aștepta, comentariile, preferințele și etichetelepunctele finale vă permit să enumerați comentarii, plăcuțe și etichete pentru articolele media, precum și să aplicați (sau să nu le aplicați).
De exemplu, iată un eșantion de răspuns la interogarea media marcată cu "zăpadă" utilizând punctul final https://api.instagram.com/v1/tags/snow/media/recent?access_token=ACCESS-TOKEN:
"date": "date": ["date": ["date": [ "create_time": "1296703540", "text": "zăpadă", "din": "username": "emohatch", "username" : "26589964", "created_time": "1296707889", "text": "#snow", "din": "username": "emohatch", "username": "Emo Hatch"; "1242695", "id": "26609649"], "count": 3 "caption": "created_time": " ":" "numar": "id": "1242695", "id": "26589964" Nume complet: "Mike Krieger", "id": "4", "profil_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg"], "link" //instagr.am/p/BWl6P/ "," utilizator ": " 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 "," lățime ": 306," înălțime ": 306 , "miniatură": "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_5.jpg", "lățime": 150, "înălțime": 150 "standard_resolution": "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_7.jpg", "lățime": 612, "înălțime": 612, id ":" 22699663 "," locație ": null, " type ":" video "," videoclipuri ": " url ": http: //distilleryvesper9-13.ak.instagram. com / 090d06dad9cd11e2aa0912313817975d_102.mp4 "," latime ": 480," înălțime ": 480," standard_resolution ": " url ":" http://distilleryvesper9-13.ak.instagram.com/090d06dad9cd11e2aa0912313817975d_101.mp4 " "" date ": [" created_time ":" "date": 640 : "1279332030", "text": "Iubiți semnul aici", "din": "userna "Mikey Krieger", "id": "4", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg", id: "Kevin S", "id": "8", "created_time": "1279341004", "text": "Chilako taco" "", "Numar": "3", "id": "3", " date ": [" nume utilizator ":" mikeyk "," nume complet ":" Mikeyk "," id ":" 4 "," profile_picture ":" .eu ":" nume utilizator ":" kevin "," full_name ":" Kevin S "," profile_picture ":" ... "," id " ":" 1279340983 "," imagini ": " low_resolution ": " url ":" http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_6.jpg "," lățime ": 306, , "thumbnail": "url": "http://distilleryimage2.ak.instagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_5.jpg", "lățime": 150, "înălțime": 150, "standard_resolution": "url" „http: //distilleryimage2.ak.i nstagram.com/11f75f1cd9cc11e2a0fd22000aa8039a_7.jpg "," lățime ": 612," înălțime ": 612," id ":" 3 "," locație ": null;
API-urile de servicii sociale precum Twitter și Instagram au baze de date proprii. Instagram numește aceste Locații. Obiectivele locației vă permit să căutați identificatori de locație în serviciul Instagram prin coordonarea GPS și să găsiți materiale media trimise din acele coduri de locație.
Iată un exemplu de interogare pentru locațiile cunoscute (sau locuri) în apropierea coordonatelor GPS ale Turnului Eiffel:
Instagram își întoarce ID-urile de localizare pentru locații cunoscute din apropiere. De exemplu, puteți utiliza acest lucru cu alte interogări de locație pentru a găsi postări media din Restaurant 58 Tour Eiffel.
Odată ce vă înregistrați aplicația de dezvoltator, puteți face o mare varietate de solicitări folosind doar cheia dvs. de acces. Cu toate acestea, pentru a asigura obiective finale specifice și pentru a furniza informații de utilizator private, API-ul Instagram utilizează protocolul OAuth 2.0 pentru autentificare.
Iată un exemplu de utilizare a OAuth din consola API (descris mai jos):
Accesul implicit pentru OAuth este numai pentru citire, dar Instagram vă permite să solicitați utilizatorului să adauge alte permisiuni prin intermediul acestor domenii:
Puteți afla mai multe despre implementarea programului OAuth al Instagram acum sau puteți aștepta pentru episoadele viitoare din această serie.
Cu API-ul Instagram Real-Time, puteți să vă abonați la evenimente pentru a monitoriza activitatea live pentru utilizatori, etichete, locații (ID-urile native ale Instagram) și zonele GPS:
Pentru accesul în timp real, Instagram sugerează utilizarea Tornado bazată pe Python sau Node.js. Există, probabil, și lecții pe care le puteți învăța de la Phirehose, cadrul de Twitter în timp real construit în PHP.
Pentru actualizările în timp real, înregistrați un punct final de apel invers al dvs., de ex. o adresă URL. Iată un exemplu de postare de actualizări de abonament de la Instagram la un final de apel invers:
"subscription_id": "1", "obiect": "utilizator", "object_id": "1234", "changed_aspect": "media", "time": 1297286541; "obiect": "tag", "object_id": "nofilter", "changed_aspect": "media", "time": 1297286541
Prima este o nouă postare media de către un feed de utilizator la care v-ați abonat. Cel de-al doilea este un nou mesaj media către un abonament la etichete.
Pentru a vă ajuta să începeți și să depanați, Instagram are o consola API alimentată de Apigee:
De asemenea, puteți să distribuiți și să încorporați rezultatele:
După ce v-ați înregistrat ca dezvoltator, puteți raporta cu ușurință problemele API echipei Instagram:
Puteți accesa API-ul Instagram cu orice platformă utilizând punctele sale finale REST. Instagram oferă biblioteci pentru Python și Ruby. Operatorul de pachete oferă un număr de biblioteci comunitare pentru Instagram for PHP. IBM are, de asemenea, un ghid pentru utilizarea PHP vanilla cu Instagram.
Utilizatorii Instagram își păstrează proprietatea asupra fotografiilor și videoclipurilor. Deoarece drepturile de autor sunt atât de importante pentru drepturile de autor, Instagram spune: "Este responsabilitatea dvs. să vă asigurați că respectați acest drept".
De asemenea, nu vi se permite să replicați experiența aplicației Instagram. Inovează în schimb.
Înainte de a începe să utilizați API, avem câteva instrucțiuni despre care vrem să vă spunem. Puteți citi aici termenii de utilizare integrală API.
Ca și în cazul oricărui API pentru servicii web, există limite de rată pe care trebuie să le respectați sau să le blocați. De exemplu, aplicațiile sunt restricționate la 5.000 de apeluri pe oră.
Sper că sunteți intrigat să începeți să utilizați API-ul Instagram. În următorul episod, vă voi îndruma prin tot ceea ce aveți nevoie pentru a începe să faceți cereri privind parametrii finali. Dacă doriți să începeți imediat, puteți să verificați localizarea potențialilor criminali cu ajutorul API-urilor sociale.
Vă rugăm să nu ezitați să postați întrebările și comentariile dvs. de mai jos. Puteți să mă contactați și pe Twitter @reifman sau să mă trimiteți direct prin e-mail. De asemenea, puteți să răsfoiți pagina instructorului Tuts + pentru a vedea alte tutoriale pe care le-am scris.