API-uri pentru rețelele sociale: Portalul Internetului către lumea reală
Publicat: 2022-03-11API-urile rețelelor sociale au parcurs un drum lung de când Google a lansat prima versiune a API-ului YouTube în mai 2008, iar Facebook a lansat prima versiune a API-ului Graph în aprilie 2010. Astăzi, aceste API-uri vă oferă posibilitatea de a interoga platformele rețelelor sociale pentru postări. , utilizatori, canale și date demografice. Vă permit chiar să vă creați propriul serviciu sau să aflați mai multe despre baza dvs. de utilizatori.
În acest articol, vom examina modalitățile prin care putem utiliza unele dintre popularele API-uri de rețele sociale:
- Facebook (Graph and Marketing API)
- Stare de nervozitate
- YouTube
Vom discuta, de asemenea, limitările acestora și vom explora unele dintre instrumentele utile care sunt disponibile pentru utilizare cu aceste API-uri. Mai târziu în articol, vom arunca o privire și asupra modului de integrare a acestor API-uri în orice aplicație Rails.
Mă voi concentra pe un singur API de rețea socială la un moment dat și voi explica capabilitățile, limitările și instrumentele disponibile. Va exista o matrice cu diferitele API-uri și proprietățile lor pentru o comparație mai bună mai târziu în acest articol.
Pentru a utiliza API-urile, va trebui mai întâi să configurați o aplicație care creează interogări în numele aplicației dvs. cu solicitări bazate pe OAuth. Utilizatorii se vor autentifica în aplicația dvs. și apoi puteți accesa datele lor cu simbolul de acces al utilizatorului rezultat.
FQL (Facebook Query Language), acum învechit, era un limbaj de interogare asemănător SQL, care putea fi folosit pentru a accesa toate datele de pe Facebook.
Facebook a lansat prima versiune a API-ului Graph în aprilie 2010. Cea mai recentă versiune la momentul scrierii acestui articol este 2.6, care a fost introdusă pe 12 aprilie 2016. Este un API de nivel scăzut bazat pe HTTP, care poate fi folosit pentru a interoga. date, creați postări și chiar creați campanii publicitare automate.
Instrumente
Graph API Explorer este instrumentul cel mai frecvent utilizat atunci când lucrați cu API-ul Facebook. Vă permite să executați interogări API Graph în browser și să examinați rezultatele: puteți utiliza unul dintre jetoanele de acces ale aplicației dvs. sau puteți crea unul din mers cu domeniile selectate.
Capabilități
API-ul Graph este un API bazat pe REST, care vă permite să creați, să actualizați și să ștergeți obiecte pentru fiecare solicitare HTTP pe anumite noduri.
Jeton de acces
Pentru a rula interogări împotriva API-ului Graph, aveți nevoie de un token de acces care este obținut de îndată ce un utilizator autorizează cu succes în aplicația dvs. Indicatorul de acces ar trebui să fie stocat de aplicația dvs.
Domenii de aplicare
Domeniile de aplicare determină ce acțiuni pot fi efectuate în numele unui utilizator. Aplicația solicită anumite domenii atunci când un utilizator autorizează într-o aplicație. Domeniul de aplicare publish_actions
, de exemplu, permite unei aplicații să publice postări în numele unui utilizator. Domeniul de aplicare a e-mailului permite aplicației să citească e-mailul utilizatorului. O prezentare completă a tuturor domeniilor este listată în documentația oficială.
Anumite domenii precum publish_actions
sau ads_management
necesită o revizuire de către Facebook înainte de lansarea aplicației.
Exemple
Pentru a demonstra cum funcționează API-ul Graph, vă voi arăta cum să citiți, să creați, să actualizați și să ștergeți postări cu API-ul.
Pentru a obține propriile postări, puteți executa interogarea GET /me/posts
. Rezultatul va fi un șir JSON cu o listă de postări, inclusiv mesajul acestora, create_time și id-ul. Puteți folosi parametrul pretty
sau un formatator JSON pentru a face răspunsul să pară mai puțin aglomerat.
Pentru a obține mai multe date despre postările dvs., puteți extinde interogarea cu câmpuri ca parametri de interogare. De exemplu, interogarea me/posts?fields=reactions, picture
vă va oferi imaginea postării și reacțiile.
Pentru a crea o postare, puteți pur și simplu să trimiteți o acțiune POST împotriva fluxului de margine, de exemplu me/feed
, cu parametri precum message: hello world
. API-ul Graph va returna un obiect JSON cu ID-ul postării create de dvs. Puteți vizualiza apoi postarea la adresa http://facebook.com/[post_id]
.
Pentru a actualiza o postare, puteți trimite o solicitare POST la nodul postării cu câmpurile de actualizat ca parametri; de exemplu, /[post_id]
și parametri precum Message: lorem ipsum
. Va fi returnat un indicator de succes cu valoarea true sau false.
Pentru a șterge o postare, puteți face pur și simplu o solicitare DELETE nodului cu ID-ul postării (de exemplu, /[post_id]
). Valoarea returnată va fi un obiect JSON cu o valoare de succes adevărată sau falsă.
O prezentare completă a tuturor nodurilor și acțiunilor este disponibilă în Graph API Reference.
API de marketing
API-ul de marketing merită o mențiune specială, deoarece este un instrument puternic pentru a gestiona reclamele Facebook și a obține informații despre anunțuri prin intermediul aplicației dvs.
Funcționează în același mod ca și alte metode Graph API. Cu toate acestea, aveți nevoie de domeniul de aplicare ads_management
pentru a obține acces la anunțurile utilizatorului. De asemenea, Facebook trebuie să vă revizuiască aplicația înainte de a o putea publica.
Testare
Odată ce ați creat aplicația, aceasta este în modul de dezvoltare și este vizibilă automat în tabloul de bord al aplicației (adică, https://developers.facebook.com/apps/
).
În modul de dezvoltare, numai administratorii, dezvoltatorii și testerii au acces la aplicația dvs. Puteți adăuga testeri și administratori în secțiunea de roluri din tabloul de bord al aplicației.
Procesul de revizuire
Când adăugați anumite permisiuni, Facebook trebuie să vă examineze aplicația înainte de a o putea publica. Procesul de revizuire este definit de acest set de linii directoare.
Pentru a trimite anumite articole spre examinare, puteți să le adăugați pur și simplu în secțiunea de examinare a aplicației din tabloul de bord al aplicației. Facebook vă va ghida apoi prin procesul de revizuire și veți fi alertat odată ce aplicația dvs. este aprobată.
Limitări și soluții alternative
Limite de rate
O aplicație poate efectua 200 de apeluri pe oră per utilizator în total. Dacă atingeți această limită, apelurile dvs. API vor avea ca rezultat o eroare.
Căutând postări pe Facebook
Facebook restricționează căutarea de postări și etichete pe Facebook prin API-ul Graph și FQL. Cu toate acestea, puteți utiliza API-ul de căutare Google pentru a căuta postări publice pe Facebook și apoi puteți utiliza ID-ul postării din adresa URL pentru a prelua mai multe informații despre anumite postări prin API-ul Graph.
Obținerea datelor personalizate de public
Audience Insights pe Facebook este un instrument de cercetare puternic pentru a afla mai multe despre un anumit public pe baza intereselor, a datelor demografice sau a altor atribute (de exemplu, o colecție de adrese de e-mail).
Cu toate acestea, nu am găsit o modalitate de a crea automat informații despre public prin API-ul publicitar. Spuneți-ne în comentarii dacă aveți idei sau sugestii creative în acest sens.
API-ul Instagram a fost lansat pentru prima dată în aprilie 2014 și vă permite să creați aplicații care analizează postările utilizatorilor și îi ajută pe utilizatori să-și gestioneze propriile postări.
Instrumente
Deoarece consola API de la Instagram este învechită la momentul acestui articol, vă recomand să utilizați Apigee în scopuri de testare în browser.
Capabilități
API-ul Instagram este un API bazat pe REST. Toate punctele sale finale sunt descrise în documentația lor oficială.
Jeton de acces
Pentru a rula interogări împotriva API-ului Instagram, aveți nevoie de un token de acces care este obținut de îndată ce un utilizator autorizează în aplicația dvs. Pentru ca un utilizator să primească un simbol de acces, el sau ea trebuie să fie direcționat către adresa URL de autorizare a aplicației dvs. Serverul va redirecționa apoi utilizatorul după autorizarea aplicației dvs. și apoi veți putea citi simbolul.
Domenii de aplicare
Aplicația dvs. poate solicita diferite permisiuni. De exemplu, „de bază” vă limitează la citirea informațiilor și a conținutului media din profilul unui utilizator. „public_content” vă permite să citiți orice profil public și conținut media în numele unui utilizator.
Exemple
Pentru a demonstra cum funcționează API-ul Instagram, voi parcurge câteva exemple bazate pe punctul final media https://api.instagram.com/v1/media/popular
.
Acest punct final returnează media populară în prezent de la Instagram dacă i se transmite un token de acces ca parametru. Rezultatul va fi o matrice JSON de postări care conțin, pentru fiecare, ID-ul său media, un link către imaginea sa, aprecieri, comentarii, utilizatorul care a postat-o și alte atribute.
Puteți folosi apigee pentru a vă juca și pentru a afla mai multe despre punctele finale API și parametrii acestora.
Testare
Fiecare aplicație nouă creată pe platforma Instagram pornește în modul sandbox. Acesta este un mediu complet funcțional care vă permite să testați punctele finale API disponibile public înainte de a trimite aplicația pentru examinare.
Pentru a-ți testa aplicația, pur și simplu creați o versiune provizorie și rulați toate interogările prin acea versiune în loc de versiunea live care a trecut prin revizuire.
Procesul de revizuire
Aplicațiile în modul sandbox pot folosi orice punct final API, dar sunt limitate la un număr limitat de utilizatori și media. Este un mecanism excelent pentru dezvoltarea și testarea unei aplicații.
Pentru a intra live și a accesa tot conținutul Instagram, va trebui să trimiteți cererea pentru examinare. Odată examinată, veți putea solicita doar domeniile pentru utilizatorii pentru care aplicația dvs. a fost aprobată.
Limitări și soluții alternative
Analiza demografică
La momentul scrierii acestui articol, nu există nicio modalitate de a obține informații despre vârsta, sexul sau interesele unui utilizator public, deoarece Instagram nu vă oferă aceste informații.
Pentru a obține date demografice despre urmăritori sau o listă de utilizatori Instagram, ar trebui să-i repetați pe toți și să încercați să le determinați vârsta și sexul sau interesele pe baza urmăritorilor lor sau a informațiilor furnizate în biografia lor.
O soluție bună de date mari pentru această problemă ar putea fi un serviciu valoros pentru unele companii.
Limite de rate
Toate limitele de tarife de pe platforma Instagram sunt controlate de un simbol de acces pe o fereastră glisantă de 1 oră. Aplicațiile live au limite de rată mai mari decât aplicațiile din modul Sandbox. Limita globală a ratei pentru o aplicație live este în prezent de 5.000 de apeluri pe oră.
Stare de nervozitate
API-ul Twitter a fost lansat pentru prima dată în septembrie 2006. Este un API REST public care oferă acces de citire și scriere la datele Twitter. Autentificarea se realizează folosind OAuth. Răspunsurile sunt în format JSON.
Instrumente
Twitter are un instrument de consolă API alimentat de apigee care poate fi folosit pentru a testa solicitările în browser.
Capabilități
API-ul REST vă permite să obțineți tweet-urile, urmăritorii și persoanele urmărite ale unui utilizator. De asemenea, puteți căuta hashtag-uri în alte tweet-uri.
Jeton de acces
Twitter vă permite să creați aplicații împotriva cărora utilizatorii se pot autentifica în schimbul unui token de acces. Modelul de autentificare este OAuth.
Domenii de aplicare
Există doar două permisiuni care trebuie setate pe pagina de setări a aplicației: Numai citire și Citire și scriere. Acesta din urmă vă permite să creați tweet-uri și să efectuați alte acțiuni de postare în numele unui utilizator.
Exemple
Pentru a demonstra utilizarea API-ului Twitter, voi prelua tweet-urile utilizatorului autorizat. Rezultatul este o matrice JSON cu imaginile tweetului, favoritele, retweeturile, adresele URL, data creării și alte atribute. Utilizați Apigee pentru a vă juca și pentru a afla mai multe despre punctele finale API și parametrii acestora.
Procesul de testare și revizuire
În prezent, nu există un proces de revizuire sau un mod de testare disponibil pentru API-ul Twitter.

Limitări și soluții alternative
Analiza demografică
În prezent, nu există o modalitate ușoară de a obține date demografice de la adepții cuiva pe Twitter. Abordarea cu forța brută ar fi să răsfoiți fiecare abonat și să încercați să obțineți datele prin biografia și conturile de rețele sociale conectate.
Apoi, puteți face ipoteze suplimentare pe baza datelor colectate de urmăritori prin analiza datelor. O altă modalitate de a obține mai multe informații este prin intermediul platformei API de întreprindere plătită a Twitter GNIP. Printre altele, vă permite să creați audiențe și să obțineți informații despre acestea prin intermediul API-ului. API-ul este în prezent în versiune BETA.
Limite de rate
Twitter are limite de rată pentru fiecare utilizator și pe o bază de 15 minute. Dacă aplicația dvs. are mai multe jetoane, puteți pur și simplu să alternați jetoane pentru operațiuni publice pentru a evita atingerea limitei.
YouTube
API-ul de date YouTube a fost introdus pentru prima dată în ianuarie 2013. Vă permite să adăugați funcții YouTube la aplicația dvs., să căutați conținut și să analizați datele demografice ale unui canal YouTube. Este un API REST OAuth, bazat pe token, care returnează răspunsuri JSON.
Instrumente
API Explorer vă permite să testați solicitările neautorizate și autorizate. Puteți rula solicitări din browser împotriva punctelor finale furnizate.
Capabilități
Printre altele, puteți lucra cu activități, chat-uri, transmisiuni live, liste de redare, canale, videoclipuri și abonamente. Majoritatea punctelor finale necesită autorizarea cu un cont YouTube.
Jeton de acces
API-ul de date YouTube acceptă protocolul OAuth 2.0 pentru autorizarea accesului la datele private ale utilizatorilor. Odată ce un utilizator a fost autorizat în aplicația dvs., acesta va fi redirecționat către aplicația dvs. unde ar trebui să fie salvat simbolul de acces.
Pentru a utiliza autorizarea OAuth 2.0, mai întâi trebuie să obțineți acreditările de autorizare în consola pentru dezvoltatori Google.
Domenii de aplicare
API-ul de date YouTube acceptă în prezent următoarele domenii:
- Forțați SSL - Gestionați-vă contul de YouTube, dar numai printr-o conexiune SSL.
- Implicit - Gestionați-vă contul YouTube. Acest domeniu este identic din punct de vedere funcțional cu domeniul youtube.force-ssl, dar nu necesită o conexiune SSL.
- Numai citire - Vizualizați contul dvs. YouTube.
- Încărcați - Încărcați videoclipuri YouTube și gestionați videoclipurile dvs. YouTube.
- Audit canal partener - Preluați informații pe care rețelele multicanal le folosesc ca criteriu pentru a accepta sau a respinge un canal din rețeaua lor.
Exemple
Ca exemplu de utilizare a API-ului de date Youtube, următoarele solicită interogări pentru videoclipuri cu „codare” în titlu și descriere:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
Rezultatul este un obiect JSON care conține titlul, descrierea, videoId și channelId. Puteți folosi acesta din urmă pentru a afla mai multe despre canal.
Parametrul part
este necesar pentru orice solicitare API care returnează o anumită resursă. Parametrul identifică proprietățile resursei care ar trebui incluse într-un răspuns API. De exemplu, o resursă video are următoarele părți: fragment, conținutDetalii, fișierDetalii, player, procesareDetalii, înregistrareDetalii, statistici, stare, sugestii, subiectDetalii.
Toți ceilalți parametri, cu excepția cheii API, diferă de la apel la apel. Citiți mai multe despre el în ghidul de referință API.
API-ul Pinterest a fost lansat inițial în aprilie 2015. Este un API RESTful care oferă acces la datele Pinterest ale unui utilizator, cum ar fi panourile, pinurile, urmăritorii și multe altele. API-ul Pinterest folosește OAuth și permite atât permisiuni de citire, cât și de scriere atunci când interacționează cu conținutul unui utilizator.
Instrumente
Ca și alții, Pinterest oferă un API Explorer pentru a-și testa punctele finale și pentru a rula interogări împotriva lor. Puteți arunca o privire la toate instrumentele lor aici.
Capabilități
API-ul Pinterest REST vă permite să creați pinuri, panouri și să interogați datele Pinterest cu OAuth.
Jeton de acces
Pinterest folosește OAuth 2.0 pentru a autentifica solicitările dintre aplicația dvs. și utilizatorii dvs. Toate solicitările trebuie făcute prin HTTPS.
Domenii de aplicare
Domeniile de aplicare determină ce poate face o aplicație în numele unui utilizator. Pinterest folosește următoarele domenii:
-
none
(trebuie să cunoască identificatorul): Folosiți metoda GET pe profilul unui utilizator, detaliile panoului și Pinurile și Pinurile de pe un panou. -
read_public
: Folosiți metoda GET pe Pinurile, panourile și aprecierile unui utilizator. -
write_public
: Folosiți metodele PATCH, POST și DELETE pe Pinurile și panourile unui utilizator. -
read_relationships
: Folosiți metoda GET pe urmăritorii și urmăritorii unui utilizator (pe forumuri, utilizatori și interese). -
write_relationships
: Folosiți metodele PATCH, POST și DELETE pe urmăritorii și urmăritorii unui utilizator (pe panouri, utilizatori și interese).
Exemple
Pentru a demonstra utilizarea API-ului Pinterest, voi demonstra cum să citesc cele mai recente pinuri ale utilizatorului:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
va returna pinurile unui utilizator cu id-ul, linkul, nota, url, aprecieri și repins.
Procesul de testare și revizuire
Aplicațiile sunt inițial în modul de dezvoltare și trebuie trimise spre examinare înainte de a fi lansate în modul de producție.
Limitări și soluții alternative
Analiza demografică
Nu există o modalitate comună de a obține date demografice de la un panou. Cu toate acestea, puteți încerca să obțineți adepții unui forum și informații despre aceștia din biografia lor și link-uri către alte conturi de rețele sociale. O soluție de date mari peste conexiunile comune ale utilizatorului ar fi, de asemenea, o posibilitate.
Căutați Pinuri
În prezent, nu există nicio modalitate de a căuta pini cu anumite etichete sau cuvinte cheie prin API. Puteți ocoli această limitare utilizând API-ul Google Custom Search pentru a căuta rezultate numai pe pinurile Pinterest și pentru a aduna ID-ul pinului prin adresa URL. ID-ul poate fi apoi folosit pentru a obține informații despre pin prin intermediul API-ului.
Limite de rate
Fiecare aplicație (cu un ID unic de aplicație) are 1.000 de apeluri pe punct final pe oră pentru fiecare token unic de utilizator.
Fiecare răspuns API returnează un antet care vă oferă o actualizare despre limitele ratei. X-Ratelimit-Limit este limita de rată pentru acea cerere specifică, iar X-Ratelimit-Remaining este numărul de solicitări rămase în fereastra de 60 de minute.
Dacă depășiți limita de rată pentru un anumit punct final, veți primi un cod de eroare 429 „Prea multe solicitări”.
Comparație între API-urile rețelelor sociale
Versiune | OAuth | Format | Demografie | |
---|---|---|---|---|
v2.6 Lansare inițială: aprilie 2010 | OAuth 2 | Solicitări REST cu răspunsuri JSON | Sprijinit | |
v1 Lansare inițială: aprilie 2014 | OAuth 2 | Solicitări REST cu răspunsuri JSON | Nu sunt acceptate | |
Stare de nervozitate | v1.1 Lansare inițială: septembrie 2006 | OAuth 1 | Solicitări REST cu răspunsuri JSON | Acceptat numai cu GNIP |
YouTube | v3 Lansare inițială: ianuarie 2013 | OAuth 2 | Solicitări REST cu răspunsuri JSON | Sprijinit |
v1 Lansare inițială: aprilie 2015 | OAuth 2 | Solicitări REST cu răspunsuri JSON | Nu sunt acceptate |
Aplicație demonstrativă cu Devise
Integrarea acestor API-uri în aplicațiile dvs. noi sau existente, datorită unei multitudini de pachete și biblioteci API de rețele sociale, este mai ușoară ca niciodată. Cele mai multe platforme și cadre moderne au biblioteci terțe testate în timp, care chiar unifică aspectul de autentificare toate aceste API-uri într-o singură bibliotecă cu arhitectură de plugin-uri îngrijită.
Pentru acest articol, vom arunca o privire la modul în care Devise, o bijuterie Ruby, face acest lucru atât de elegant pentru aplicațiile Rails. Devise este o bibliotecă de autentificare flexibilă bazată pe Warden care implementează autentificarea, înregistrarea, autentificarea și stocarea datelor pentru mai mulți furnizori de autentificare. Dacă sunteți mai mult un tip front-end și doriți să verificați ceva similar pentru AngularJS, aruncați o privire la acest articol.
Devise, ca majoritatea bibliotecilor din această clasă, nu vine încorporat cu suport pentru niciuna dintre API-urile rețelelor sociale menționate mai sus. Suportul pentru fiecare dintre aceste API de rețea socială este oferit prin pietre prețioase suplimentare. Următoarele pietre prețioase sunt disponibile pentru autentificarea Rails care acoperă cei 5 furnizori discutați în acest articol:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Deoarece acestea oferă doar autentificare, înregistrare, autentificare și stocare pentru fiecare dintre acești furnizori, va trebui, de asemenea, să obținem următoarele bijuterii pentru clienții API actuali:
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
Omniauth și autentificare
Pentru ca un utilizator să vă autorizeze aplicația cu furnizorul dvs., puteți pur și simplu să furnizați un link cu următoarea cale:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
Pentru a reacționa la apel invers după autentificarea unui utilizator, puteți defini un OmniauthCallbacksController cu domenii ca funcții precum:
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end
Acesta este locul pentru a adăuga un nou model de autentificare cu simbolul și datele în aplicația dvs.:
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end
Efectuarea de apeluri API
Iată un exemplu despre cum să utilizați Koala pentru a interoga API-ul Facebook. Restul furnizorilor funcționează mai mult sau mai puțin similar și sunt documentați în README-ul bijuteriei.
Iată cum obțineți datele dvs. de utilizator folosind Koala:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")
Apoi puteți utiliza rezultatul JSON returnat de API. Codul sursă al acestei aplicații demonstrative este disponibil pe GitHub.
Învelire
API-urile rețelelor sociale vă oferă un instrument puternic pentru a interoga setul mare de date al rețelelor sociale și pentru a colecta date mari pentru aplicația dvs. Puteți construi un serviciu pe deasupra acestor API-uri sau le puteți utiliza pentru a vă îmbunătăți propriile aplicații și informații despre utilizator.
Rails și pietrele prețioase disponibile facilitează integrarea acestor API-uri în aplicația șine și interogarea interfețelor cu un strat de abstractizare între aplicația dvs. și API.