Sosiale medier APIer har vokst mye siden Google ga ut den første versjonen av YouTube API i mai 2008, og siden Facebook ga ut den første versjonen av sin Graph API i april 2010. I dag gir disse APIene deg muligheten til å søke i sosiale medier. plattformer: innlegg, brukere, kanaler og demografiske data. De lar deg også lage din egen tjeneste eller lære mer om brukerbasen din.
I denne artikkelen skal vi undersøke måtene vi kan bruke noen av de populære API-ene for sosiale medier:
Vi vil også diskutere begrensningene og utforske noen av de mest nyttige verktøyene som er tilgjengelige med disse API-ene. Så i artikkelen vil vi se på hvordan vi kan integrere disse API-ene i en hvilken som helst applikasjon av Skinner .
Jeg skal fokusere på API-et til et sosialt nettverk om gangen, for å forklare dets evner, begrensninger og tilgjengelige verktøy. Det vil være en matrise med de forskjellige API-ene og deres egenskaper for bedre sammenligning senere i artikkelen.
For å bruke API-ene, må du først installere et program som lager spørsmål på vegne av applikasjonen din med OAuth-baserte forespørsler. Brukere vil autentisere informasjonen deres i applikasjonen din, og etter dette kan du få tilgang til dataene deres med den brukeradgangsidentifikatoren som resulterer.
Det utdaterte FQL (Facebook Query Language) som brukes til et spørrespråk som ligner på SQL, som kan brukes til å få tilgang til alle Facebook-data.
Facebook ga ut den første versjonen av sin Graph API i april 2010. Den siste versjonen, med dette skrivet, er 2.6, som ble introdusert 12. april 2016. Det er et lavt nivå HTTP-basert API. Som kan brukes til å be om data, opprette innlegg og til og med lage automatiserte reklamekampanjer.
De API Graph Explorer er det mest brukte verktøyet når du arbeider med Facebook API. Den lar deg kjøre Graph API-spørsmålene i søkemotoren, samt undersøke resultatene: du kan bruke en av programmets tilgangsblokker eller opprette en på farten med utvalgte omfang.
Graph API er et REST-basert API som lar deg opprette, oppdatere og slette objekter fra hver HTTP-forespørsel på noen noder.
For å kjøre spørsmål til Graph API, trenger du et tilgangstoken som oppnås så snart en bruker godkjenner applikasjonen.
Omfang bestemmer hvilke handlinger som kan utføres på brukerens vegne. Programmet ber om bestemte omfang når en bruker autoriserer i et program. Omfanget publish_actions
lar for eksempel et program publisere innlegg fra en bruker. E-postomfanget lar applikasjonen lese brukerens e-post. En fullstendig gjennomgang av alle omfang finnes på dokumentasjonen om .
Visse omfang som publish_actions
eller ads_management
krever en gjennomgang av Facebook før applikasjonsstart.
For å demonstrere hvordan Graph API fungerer, vil jeg vise deg hvordan du oppretter, oppdaterer og sletter innlegg med API.
For å få dine egne innlegg kan du kjøre GET /me/posts
spørsmålet. Resultatet blir en JSON-tegnstreng med en liste over innlegg, inkludert deres melding, created_time og id. Du kan bruke parameteren pretty
eller a JSON formater så svaret ser ikke så rotete ut.
For å få mer data om innleggene dine, kan du utvide spørsmålet med felt som spørsmålsparametere. For eksempel spørsmålet me/posts?fields=reactions, picture
det vil gi deg bildet og reaksjonene på innlegget.
For å opprette et innlegg kan du sende en POST-handling til kantmating , f.eks. me/feed
, med parametere som message: hello world
. Graph API returnerer et JSON-objekt med ID-en for innlegget du opprettet. Du kan se innlegget på adressen http://facebook.com/[post_id]
.
For å oppdatere et innlegg, kan du sende en POST-forespørsel til postnoden med feltene som skal oppdateres som parametere; for eksempel /[post_id]
og parametere som Message: lorem ipsum
. En vellykket indikator med verdien sant eller usant vil bli returnert.
For å slette et innlegg kan du ganske enkelt sende en DELETE-forespørsel til noden med post-ID (f.eks. /[post_id]
). Returverdien vil være et JSON-objekt med en suksessverdi på sant eller usant.
En fullstendig gjennomgang av alle noder og handlinger er tilgjengelig i API-grafreferanse .
De API for markedsføring Det fortjener en spesiell omtale, da det er et av de kraftigste verktøyene for annonseringsadministrasjon på Facebook og får en innsiders innsikt i reklame gjennom søknaden din.
Det fungerer på samme måte som andre Graph API-metoder. Du trenger imidlertid omfanget ads_management
for å få tilgang til brukerannonser. Facebook må også gjennomgå appen din før du kan publisere den.
Når du har opprettet applikasjonen, er den i utviklingsmodus og blir automatisk synlig på applikasjonens dashbord (f.eks. https://developers.facebook.com/apps/
).
I utviklingsmodus er det bare administratorer, utviklere og testere som har tilgang til applikasjonen din. Du kan legge til testere og administratorer og rolle-delen av app-dashbordet.
Når visse tillatelser er lagt til, må Facebook gjennomgå appen din før du kan publisere den. Gjennomgangsprosessen er definert av dette settet med guider .
For å legge inn bestemte elementer for gjennomgang, trenger du bare å legge dem til gjennomgangsseksjonen på app-dashbordet. Facebook vil lede deg gjennom gjennomgangsprosessen og varsle deg når appen din er godkjent.
En applikasjon kan foreta 200 samtaler per time for hver bruker samlet. Hvis du når denne grensen, vil API-anropene føre til en feil.
Facebook begrenser søket etter innlegg og koder på Facebook gjennom Graph API og FQL. Du kan imidlertid bruke API Google Søk for å søke etter offentlige innlegg på Facebook og deretter bruke post-id i URL-en for å få mer informasjon om spesifikke innlegg via Graph API.
Offentlig oppfatning på Facebook er et viktig søkeverktøy for å lære mer om et publikum basert på interesser, demografi eller andre attributter (f.eks. en samling e-postadresser).
Imidlertid har jeg ikke funnet en måte å automatisk skape publikumsinnsikt via reklame-API-et. Gi oss beskjed i kommentarene hvis du har noen kreative ideer eller forslag til dette.
De Instagram API Den ble lansert i april 2014 og lar deg bygge applikasjoner som analyserer brukerinnlegg og hjelper dem med å administrere sine egne innlegg.
Siden Instagram API-konsollen ble fjernet da denne artikkelen ble skrevet, anbefaler jeg å bruke Apigee for å teste det i nettleseren din.
Instagram API er et REST-basert API. Alle hans utgangspunkter de er beskrevet i deres offisielle dokumentasjon.
For å kjøre spørsmålene til Instagram API, trenger du en tilgangstoken som oppnås så snart brukeren autoriserer i søknaden din. For at en bruker skal motta et tilgangstoken, må han eller hun rettes til autorisasjons-URL-en til søknaden din. Serveren vil omdirigere brukeren etter godkjenning av søknaden din, og senere kan du lese tokenet.
Søknaden din kan spørre tillatelser annerledes For eksempel begrenser 'grunnleggende' deg til å lese profilinformasjon, samt bilder og bilder av en bruker. 'Public_content' lar deg lese offentlig profil og multimedia materiale på vegne av en bruker.
For å demonstrere hvordan Instagram API fungerer, vil jeg vise eksempler basert på medieutgangspunktet https://api.instagram.com/v1/media/popular
.
Dette utgangspunktet returnerer det nåværende populære Instagram-mediet hvis en tilgangsblokk sendes som en parameter. Resultatet vil være en kjede av JSON-innlegg som inneholder, for hver enkelt, multimediaidentifikasjon, en lenke til bildet, liker , kommentarer, brukeren som postet den og noen andre attributter.
Du kan bruke apigee for å teste og finne ut mer om API-utgangspunkter og parametere.
Hver nye applikasjon som er opprettet på Instagram-plattformen starter i modus Sandkasse . Dette er et fullt funksjonelt miljø som lar deg teste de offentlig tilgjengelige API-utgangspunktene før du sender inn søknaden din til gjennomgang.
For å teste søknaden din, trenger du bare å lage en versjon av trinn og kjøre alle spørsmålene gjennom den versjonen i stedet for liveversjonen som gikk gjennom gjennomgangen.
Apper i modus Sandkasse Du kan bruke hvilket som helst API-utgangspunkt, men disse er begrenset til et begrenset antall brukere og medier. Det er en flott mekanisme for å utvikle og teste en applikasjon.
For å starte live og få tilgang til alt innholdet på Instagram, må du sende søknaden din gjennom en anmeldelse . Når den er gjennomgått, kan du bare be om omfang for brukere som søknaden din ble godkjent for.
Da jeg skrev denne artikkelen, var det ingen måte å få informasjon om en offentlig brukers alder, kjønn eller interesser, fordi Instagram ikke gir deg den informasjonen.
For å få demografiske data om tilhengere eller en liste over Instagram-brukere, må du gjenta hver av dem og prøve å bestemme alder og kjønn, basert på følgere eller informasjonen i biografiene.
En god dataløsning på dette problemet kan være en veldig verdifull tjeneste for noen selskaper.
Alle de satsgrenser på Instagram-plattformen styres de av en tilgangsblokk i et 1-timers skyvevindu. Live-apper har høyere takst enn Mode-apper. Sandkasse . Den globale satsgrensen for en direktesendt applikasjon er for tiden 5000 samtaler i timen.
Twitter API var løslatt i september 2006. Det er en Offentlig REST API som gir leset og skriftlig tilgang til Twitter-data. Autentisering gjøres ved hjelp av OAuth. Svarene er i JSON-format.
Twitter har en API-konsollverktøy drevet apigee , som kan brukes til å teste forespørsler i søkemotoren.
REST API lar deg få tweets, følgere og personer som en bruker følger. Du kan også se etter kodene i andre tweets.
Twitter lar deg lage applikasjoner som brukere kan autentisere ved retur av tilgangstoken. Autentiseringsmodellen er OAuth.
Det er bare to tillatelser som må stilles inn på siden for applikasjonsinnstillinger: Skrivebeskyttet og Les og skriv. Den siste av disse lar deg lage tweets og utføre andre handlinger på innleggene av brukeren.
For å demonstrere bruken av Twitter API, skal jeg ta brukerautoriserte tweets. Resultatet er en JSON-tegnstreng med bilder, favoritter, retweets, urls, opprettelsesdato og andre attributter til tweets. Bruk Apigee for å teste og finne ut mer om API-utgangspunkter og parametere.
Det er for øyeblikket ingen gjennomgangsprosess eller testmodus tilgjengelig for Twitter API.
Det er for tiden ingen enkel måte å få tak i demografiske data fra en brukers Twitter-følgere. Brute force-tilnærmingen ville være å gjennomgå hver tilhenger og prøve å få tak i dataene gjennom deres biografier og tilhørende kontoer fra andre sosiale nettverk.
Senere kan du gjøre antagelser basert på dataene som er samlet inn fra følgere gjennom dataanalyse. En annen måte å få mer informasjon på er via Twitters betalte prosjekt API-plattform kalt GNIP . Blant annet lar den deg lage et publikum og få mer informasjon om dem gjennom API. API-en er for øyeblikket i BETA-tilstand.
Twitter har satsgrenser for hver bruker og på 15 minutters basis. Hvis applikasjonen din har flere tokens, kan du alternere tokens for offentlig virksomhet for å unngå å nå grensen.
YouTube Data API ble utgitt i januar 2013. Den lar deg legge til YouTube-funksjoner i applikasjonen din, søke etter innhold og analysere demografi på YouTube-kanaler. Det er en OAuth, det tokenbaserte REST API, som returnerer JSON-svar.
De API-utforsker lar deg teste uautoriserte samt autoriserte forespørsler. Du kan utføre forespørsler fra nettleseren din til utgangspunktene.
Du kan blant annet jobbe med aktiviteter, chatter, direktesendinger, kanaler, videoer og abonnementer. De fleste utgangspunkter krever at du autoriserer med en YouTube-konto.
YouTube Data API støtter OAuth 2.0-protokollen for autorisere tilgang til de private brukerdataene. Når en bruker er autorisert i applikasjonen din, blir de omdirigert til applikasjonen din der tilgangstokenet skal lagres.
For å kunne bruke OAuth 2.0-autorisasjon, må du først skaffe deg autorisasjonslegitimasjon fra Googles utviklerkonsoll.
YouTube Data API fungerer for tiden med følgende omfang:
Som et eksempel på bruk av YouTube Data API viser jeg følgende spørsmål om videoer med 'koding' i tittelen og beskrivelsen:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
Resultatet er et JSON-objekt som inneholder tittel, beskrivelse, videofilm og kanal. Du kan bruke den siste av disse for å lære mer om kanalen.
Parameteren part
kreves for enhver API-forespørsel som returneres av en kilde. Parameteren identifiserer ressursegenskaper som skal inkluderes i et API-svar. For eksempel har en videofeed følgende deler: kodebit, contentDetails, fileDetails, player, processingDetails, recordingDetails, statistikk, status, forslag, topicDetails.
Resten av parametrene, bortsett fra API-nøkkelen, er forskjellige etter samtale. Les mer om dette i API-referanseguide .
De Pinterest API Den ble opprinnelig lansert i april 2015. Det er en RESTful API, som gir tilgang til Pinterest-brukerens data, for eksempel deres boards, følgere og mer. Pinterest API bruker OAuth og tillater lese- og skrivetillatelser når de samhandler med brukerinnhold.
Som de andre, tilbyr Pinterest en API Explorer for å teste utgangspunktene dine og stille spørsmål til dem. Du kan se verktøyene deres her .
De API-REST Pinterest lar deg lage pinner, tavler og stille spørsmål om Pinterest-data med OAuth.
Pinterest bruker OAuth 2.0 for å autentisere forespørsler mellom applikasjonen din og brukerne dine. Alle forespørsler må sendes via HTTPS.
Omfang bestemmer hva et innlegg kan gjøre for en bruker. Pinterest bruker følgende omfang:
none
(må kjenne identifikatoren) Bruk GET-metoden på brukerens profil, tavle- og pin-detaljer, og pin på tavlen.read_public
: Bruk GET-metoden på en brukers pin, board og liker .write_public
: Bruk PATCH-, POST- og DELETE-metoder på brukerpinner og tavler.read_relationships
: Bruk GET-metoden på følgere og hvem brukeren følger (i tavler, brukere og interesser).write_relationships
: Bruk PATCH, POST og DELETE-metodene på følgere og hvem brukeren følger (på tavler, brukere og interesser).For å demonstrere bruken av Pinterest API, skal jeg demonstrere hvordan jeg leser brukerens siste pins:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
vil returnere brukerens pinner med identifikasjon, lenke, merknad, url, liker og repins.
Søknader er i utgangspunktet i utviklingsmodus og må sendes til gjennomgang før de blir utgitt i produksjonsmodus.
Det er ingen vanlig måte å få tak i demografiske data fra et dashbord. Du kan imidlertid prøve å få følgere og informasjon fra biografi på tavlene, samt lenker til andre sosiale mediekontoer. En flott dataløsning på vanlige brukerforbindelser er også en mulighet.
Foreløpig er det ingen mulig måte å søke etter pins med bestemte koder eller nøkkelord gjennom API. Du kan omgå denne begrensningen ved å bruke Google Custom Search API til å søke søkeresultater bare på Pinterest-pinner og samle inn PIN-koden via URL. Identifikasjonen kan senere brukes til å innhente informasjon om PIN-koden gjennom API.
Hver applikasjon (med en unik applikasjons-ID) tillates 1000 samtaler per utgangspunkt per time for hvert unike brukertoken.
Hvert API-svar returnerer en overskrift som gir deg en oppdatering om hastighetsgrenser. X-Ratelimit-Limit er satsgrensen for den spesifikke forespørselen og X-Ratelimit-gjenværende er antall forespørsler du har igjen i et 60-minuttersvindu.
Hvis du overskrider hastighetsgrensen for det gitte utgangspunktet, får du en feilkode 429 “For mange forespørsler” .
Versjon | OAuth | Format | Demografi | |
---|---|---|---|---|
v2.6 Første utgivelse: April 2010 | OAuth 2 | REST-forespørsler med JSON-svar | Støttet | |
v1 Første utgivelse: april 2014 | OAuth 2 | REST-forespørsler med JSON-svar | Ikke støttet | |
v1.1 Første utgivelse: september 2006 | OAuth 1 | REST-forespørsler med JSON-svar | Støttes bare med GNIP | |
Youtube | v3 Første utgivelse: januar 2013 | OAuth 2 | REST-forespørsler med JSON-svar | Støttet |
v1 Første utgivelse: april 2015 | OAuth 2 | REST-forespørsler med JSON-svar | Ikke støttet |
Ved å integrere disse API-ene i dine nye eller eksisterende applikasjoner, takket være en mengde sosiale medier API-biblioteker og pakker, er denne prosessen enklere enn noensinne. De fleste plattformer og rammer har påvist tredjepartsbiblioteker som til og med forener autentiseringsaspektet til alle disse API-ene i et enkelt bibliotek med en fin plugin-arkitektur.
For denne artikkelen vil vi se på hvordan Motto , en Ruby-perle, gjør dette veldig elegant for Rails-applikasjoner. Motto er et fleksibelt autentiseringsbibliotek basert på Vokter som implementerer, autentisering, registrering, tilgang og datalagring for å gi flere tilganger. Hvis du er en mer front-end tilbøyelig person og vil se noe som ligner på AngularJS, sjekk ut denne artikkelen .
Motto , som mange biblioteker av denne typen, er de ikke allerede bygget med støtte for noen av de sosiale mediene APIene. Støtte for hver av disse sosiale mediene APIene tilbys gjennom flere perler. Følgende perler er tilgjengelige for Rails-autentisering, som dekker de fem leverandørene som er diskutert i denne artikkelen:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
En av de beste tingene med Rails er at det er mange plugins skrevet av open source-fellesskapet. Disse fordeles som perler. Oppført under en sentral konfigurasjonsfil administreres disse perlene av Bundler.Siden disse bare gir autentisering, registrering, tilgang og lagring for hver av disse leverandørene, trenger vi også å skaffe følgende perler for API-klientene:
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
Slik at en bruker kan autorisere søknaden din hos leverandøren din, kan du oppgi en lenke med følgende bane:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
For å kunne reagere på samtalen etter autentisering av en bruker, kan du definere en OmniauthCallbacksController med omfang som funksjoner som dette:
class AuthenticationsController Det er stedet å legge til en ny godkjenningsmodell med tokenet og dataene i applikasjonen din:
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
Foreta API-samtaler
Her er et eksempel på hvordan du bruker Koala å stille spørsmål til Facebook API. Resten av leverandørene jobber mer eller mindre på en lignende måte og er dokumentert i README av perlen.
Slik får du brukerdataene dine ved hjelp av Koala:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object('me')
Du kan deretter bruke JSON-returresultatet laget av APIen. Kildekoden til denne applikasjonsdemoen er tilgjengelig på GitHub .
Å ende
APIer for sosiale medier gir deg et kraftig verktøy for å stille spørsmål til det store datasettet for sosiale medier, samt samle inn store data for applikasjonen din. Du kan bygge en tjeneste på toppen av disse API-ene eller bruke dem til å utvide din egen applikasjon eller brukerinnsikt.
Rails og tilgjengelige perler gjør det enkelt å integrere disse API-ene i rails-applikasjonen og spørre grensesnittene med et abstraksjonslag mellom applikasjonen og API-en.