Hur man använder vilsamma webb-API i Python

Denna handledning kommer att introducera dig till webb-API och lära dig hur du använder begäran Python-biblioteket för att hämta och uppdatera information i webb-API. Du lär dig också att interagera med Twitter API som ett fungerande exempel.

Introduktion till Web APIs

Ett API (Application Programming Interface) är ett ramverk för att bygga HTTP-tjänster som kan konsumeras av en mängd olika kunder. Web API använder HTTP-protokoll för att hantera förfrågningar mellan klienten och webbservern.

Några av de vanligaste API: erna som gör det möjligt för utvecklare att integrera och använda sin infrastruktur inkluderar:

  1. Google API: er
  2. Twitter API
  3. Amazon API
  4. Facebook API

En av de viktigaste orsakerna till att använda ett API i motsats till andra statiska datakällor är att det är realtid. Till exempel, den Twitter API som vi ska använda kommer att hämta realtidsdata från det sociala nätverket.

En annan fördel är att datan fortsätter att ändras, så om du skulle ladda ner den med intervaller, skulle det bli tidskrävande.

Använda förfrågningsbiblioteket

För att kunna använda ett API måste du installera Python-bibliotekets begäranden. Begäran är ett HTTP-bibliotek i Python som låter dig skicka HTTP-förfrågningar i Python.

Installera förfrågningar

I din terminal skriver du:

pip installeringsförfrågningar

För att kontrollera om installationen har blivit framgångsrik, utfärdar du följande kommando i din Python-tolk eller terminalen:

importförfrågningar

Om det inte finns några fel har installationen lyckats.

Hur får man information från ett webb-API

GET-metoden används för att få information från en webbserver. Låt oss se hur man gör en GET-förfrågan om att få GitHubs offentliga tidslinje.

Vi använder variabeln req för att lagra svaret från vår begäran.

importförfrågningar req = requests.get ('https://github.com/timeline.json')

Nu när vi har gjort en förfrågan till GitHub-tidslinjen, låt oss få kodningen och innehållet i svaret.

importförfrågningar req = requests.get ('https://github.com/timeline.json') req.text u '"message": "Hej där, vägvisande främling. Om du läser detta så har du antagligen inte \ u2019t se vårt blogginlägg ett par år tillbaka och meddela att detta API skulle gå iväg: http://git.io/17AROg Fruktan inte, du borde kunna få det du behöver från det glänsande nya händelseprogrammet i stället. "," documentation_url ":" https://developer.github.com/v3/activity/events/#list-public-events "
importförfrågningar req = requests.get ('https://github.com/timeline.json') req.encoding 'utf-8'

Begäran har en inbyggd JSON-avkodning som du kan använda för att få svaret på en förfrågan i JSON-format.

importförfrågningar importera json req = requests.get ('https://github.com/timeline.json') req.json () u'documentation_url ': u'https: //developer.github.com/v3/activity / händelser / # lista-offentliga händelser ", meddelandet": "Hej där, vägledande främling. Om du läser detta så såg du antagligen inte vårt blogginlägg några år tillbaka och meddelade att det här API: n skulle gå iväg: http://git.io/17AROg Skräck inte, du borde kunna få det du behöver från det glänsande nya Events API-programmet istället. '

Hur man skapar och uppdaterar information på webben API

POST- och PUT-metoderna används både för att skapa och uppdatera data. Trots likheterna är det viktigt att notera att användandet av en POST-förfrågan om att uppdatera data kommer att resultera i två poster i datalagret om två identiska objekt skickas in.

Skapa data (POST-förfrågan):

r = requests.post ('http://127.0.0.1/api/v1/add_item', data = 'uppgift': 'Shopping')

Uppdatera data (PUT-förfrågan):

r = requests.put ('http://127.0.0.1/api/v1/add_item', data = 'uppgift': 'Shopping vid 2')

Arbetar med Twitter REST API

I det här avsnittet kommer du att lära dig hur du får Twitter API-behörigheter, autentisera till Twitter API och interagera med Twitter API med Python. 

Du kommer också att kunna hämta information från offentliga Twitter-konton, som tweets, följare osv.

Autentisering med Twitter

Vi måste verifiera med Twitter API innan vi kan interagera med det. Gör så här genom att följa följande steg:

  1. Gå till Twitter Apps-sidan.
  2. Klicka på Skapa ny app (du måste vara inloggad på Twitter för att komma åt den här sidan). Om du inte har ett Twitter-konto skapar du en.

3. Skapa ett namn och en beskrivning för din app och en platshållare.

4. Leta reda på Knappar och åtkomsttangenter och skapa ditt access token.

5. Du måste ta del av Access token och Tillgångstoken hemlighet eftersom du behöver dem för autentiseringsprocessen.

6. Du måste också notera Konsumentnyckel och Konsumenthemlighet.

Det finns några bibliotek som vi kan använda för att komma åt Twitter API, men vi kommer att använda python-twitter-biblioteket i denna handledning.

Installera python-twitter

För att installera python-twitter, använd:

$ pip installera python-twitter 

Twitter API är exponerat via twitter.Api klass, så låt oss skapa klassen genom att skicka våra tokens och hemliga nycklar:

import twitter api = twitter.Api (consumer_key = [konsumentnyckel], consumer_secret = [konsumenthemlighet], access_token_key = [access token], access_token_secret = [access token secret])

Ersätt dina uppgifter ovan och se till att de bifogas citat, dvs consumer_key = "xxxxxxxxxx", ...)

Fråga Twitter

Det finns många sätt att interagera med Twitter API, inklusive:

>>> api.PostUpdates (status) >>> api.PostDirectMessage (användare, text) >>> api.GetUser (användare) >>> api.GetReplies () >>> api.GetUserTimeline (användare) >>> api .GetHomeTimeline () >>> api.GetStatus (status_id) >>> api.DestroyStatus (status_id) >>> api.GetFriends (användare) >>> api.GetFollowers ()

För att få data från Twitter ska vi göra ett API-samtal med hjälp av api objekt vi skapade ovan.

Vi gör följande:

  1. Skapa en användare variabel och ställ den lika med ett giltigt Twitter-handtag (användarnamn).
  2. Ring GetUserTimeline () metod på api objekt och skicka i följande argument.

  • ett giltigt Twitter-handtag
  • Antalet tweets du vill hämta (räkna)
  • en flagga för att utesluta retweets (detta görs med hjälp av include_rts = false)

Låt oss få de senaste tweetsna från Envato Tuts + Code tidslinjen, exklusive retweets.

import twitter api = twitter.Api (consumer_key = "xxxxxxxxxxxx", consumer_secret = "xxxxxxxxxxxxxx", access_token_key = "314746354-xxxxx", access_token_secret = "xxxxxx") användare = "@TutsPlusCode" statuses = api.GetUserTimeline (screen_name = count = 30, include_rts = False) för s i statuser: skriv ut s.text 

De GetUserTimeline () Metoden kommer att returnera en lista över de senaste 30 tweetsna, så vi går igenom listan och skriver ut viktigaste informationen (innehåll) från varje tweet.

Här är 6 saker som gör Garn till den bästa #JavaScript-pakethanteraren runt. https://t.co/N4vzIJmSJi Läs mer om stapeldiagram med del 3 i den här serien om att skapa interaktiva diagram med Plotly.js. https://t.co/lyKMxSsicJ Se vad som är nytt med Git support i Xcode 9. https://t.co/7gGu0PV1rV Så här skapar du digitala signaturer med Swift. https://t.co/kCYYjShJkW I det här snabba tipset upptäcker du hur du använder Atom som en Git GUI. https://t.co/8rfQyo42xM Ta en titt på dessa 12 användbara WordPress-plugins för sidlayouter. https://t.co/T57QUjEpu5 Läs mer om linjekartor i del 2 i serien om att skapa interaktiva diagram med Plotly.js. https://t.co/nx51wOzSkF Ta några bra freebies med vårt speciella 10: e födelsedagsbud, https://t.co/AcIGTiC2re I det senaste i vår serie om kodning av en realtidsapp med NativeScript: Push notifications. https://t.co/qESFVGVF4L Kom igång med end-to-end testning i Angular using Protractor. https://t.co/TWhQZe7ihE Läs om hur man bygger ett att göra-API med nod, express och MongoDB. https://t.co/R4DvRYiM90 Vad är Android-aktiviteten Lifecyle? https://t.co/VUHsucaC1X Lär dig allt om objektorienterad programmering med JavaScript. https://t.co/bI7ypANOx3 Har det roligt med funktioner i det senaste i vår serie på Kotlin. https://t.co/r2f2TzA5lM Så här gör du din JavaScript-kod robust med Flow. https://t.co/rcdjybKL8L Bygg ditt eget to-do API med Node and Restify. https://t.co/gQeTSZ6C5k Så här lägger du dina kontroller på en diet med MVVM. https://t.co/oJqNungt1O Lär dig hur du skickar in din nya iOS-app till App Store. https://t.co/JQwsKovcaI Den här guiden är den perfekta platsen att bygga dina färdigheter och börja skriva plugins i Go. https://t.co/68X5lLSNHp Ta en titt på hur man testar komponenter i vinkel med jasmin. https://t.co/V5OTNZgDkR Lär dig att bygga ditt första #WordPress-plugin i denna fantastiska nya kurs. https://t.co/695C6U6D7V I det senaste i vår Android-arkitekturkomponentserie: LiveData. https://t.co/gleDFbqeAi Ta ett djupt dykk i Go-typsystemet. https://t.co/AUM7ZyanRO Ta en titt på serverlös logik med realm-funktioner. https://t.co/aYhfeMgAZc Del 4 av React crash kurs för nybörjare är ute! https://t.co/aG5NEa6yG9 Läs mer om social inloggning och Firebase i det här nya tillägget till serien. https://t.co/oL5z0krQD3 Skapa en bloggarapp med React del 6 är ute! Taggar https://t.co/OzUaPQEX8E Vad är GenServer och varför ska du bry dig? https://t.co/EmQeTBggUK Kolla in del 3 i React crash course för nybörjarserien. https://t.co/dflLCUqncO Lär dig om paket och grundläggande funktioner i tillägget till vår Kotlin från scratch-serien. https://t.co/JAo2ckSgZS 

För att hämta efterföljare använder vi GetFriends () metod.

import twitter api = twitter.Api (consumer_key = "ftFL8G4yzQXUVzbUCdxGwKSjJ", consumer_secret = "KxGwBe6GlgSYyC7PioIVuZ5tFAsZs7q1rseEYCOnTDIjulT0mZ", access_token_key = "314.746.354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx", access_token_secret = "7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w") användar = "@TutsPlusCode" vänner = api.GetFriends (SCREEN_NAME = user) för vän i vänner: skriv ut vännamn

Produktion

Derek Herman Cyan Ta'eed Dropbox Stoyan Stefanov JavaScript Ninja Dan Wellman Brenley Dueck Dave Ward Packt Karl Swedberg Envato Tuts + Web Dev_Tips Vahid Ta'eed Jarel Remick Envato Dev. Team 🖥 Drew Douglas 📈 Cameron Moll SitePoint John Resig Skellie Chris Coyier Envato Tuts + Envato Tuts + Design Collis

Slutsats

Twitters API kan användas till stor del i dataanalys. Den kan också användas i komplexa stora dataproblem och autentiserande appar. Läs mer om Twitter API på Twitter-utvecklarens webbplats.

.