Gå till innehållet

Hur man använder WordPress HTTP API

Divi: det enklaste WordPress-temat att använda

Divi: Det bästa WordPress-temat hela tiden!

mer 901.000-nedladdningar, Divi är det mest populära WordPress-temat i världen. Den är komplett, lätt att använda och levereras med mer än 62 gratis mallar. [Rekommenderas]

REST-typ-API: er blir alltmer populära bland utvecklare eftersom de är ett kommunikationsmedel mellan deras applikationer och webbtjänster som de som Twitter, MailChimp eller GitHub. Ankomsten avREST API Wordpress tillgänglig genom plugin (men planerad i kärnan i december), erbjuder en lämplig möjlighet att studera HTTP API som redan finns i WordPress. I den här handledningen går jag igenom vad WordPress HTTP API är och visar dig hur du använder det.

HTTP API

WordPress HTTP API är ett sätt att överföra meddelanden via HTTP-protokollet, från en applikation av en webbtjänst eller en annan webbplats till WordPress och vice versa. För att komma till den här sidan måste din webbläsare göra en HTTP-begäran till BlogPasChers servrar. De svarade genom att returnera ett svar som innehåller det du ser just nu. REST API för WordPress tillåter nu att det deltar i denna typ av begäran / svarssystem, vilket möjliggör en frikoppling mellan det grafiska gränssnittet och kärnan i plattformen. Men för att dra nytta av detta måste du lära dig hur du använder WordPress HTTP API som erbjuder en uppsättning metoder och verktyg för att skicka HTTP-förfrågningar.

HTTP-metoder och resurser

HTTP-protokollet är centrerat kring metoder och resurser. Resurser definierar vad du vill vidta åtgärder och metoder definierar vilken typ av åtgärder du ska vidta. Mer praktiskt sett är resurser webbadresser till objekt på internet (till exempel den här artikeln). På metodsidan finns det ett antal av dem, varav de viktigaste är:

- : att återställa en resurs
- POST : att skapa en resurs
- SÄTTA : Om du vill ändra en resurs
- RADERA : För att ta bort en resurs

Exempel på begäran med HTTP API

För att komma igång, låt oss se hur man skickar en enkel begäran med HTTP API. Vi kommer att använda funktionen wp_remote_get för att fråga Google-servern och hämta hemsidan. Denna funktion tar två parametrar, varav den första är resursen och den andra är en lista med alternativ för att specificera detaljer. Låt oss vidta åtgärder utan vidare.

$ test = wp_remote_get ('http://google.com'); eko " "; 
var_dump ($ test); 
eko " ";

avkastningen wp_remote_get finns i variabeln $ testet, och representerar innehållet på den hemsida som Google returnerade efter vår begäran. Linje var_dump ($ test); låter dig se artiklarna som returneras i svaret.

avsnittet headers innehåller ytterligare information om meddelandena. Vissa REST-API: er behöver du för att skicka specifik information i frågor som adresseras till dem.

avsnitt respons innehåller statuskoden och beskrivningen av svaret. Du kanske har hört talas om ett 404-fel för sidor som inte hittades, 501-serverfel eller 301 och 302-omdirigeringar. Dessa siffror är felkoder. Webbplatsen W3.org har en lista över alla HTTP-felkoder och deras beskrivning.

Skapa enkelt din webbplats med Elementor

Med Elementor kan du enkelt skapa en webbdesign med ett professionellt utseende. Sluta betala dyra för vad du kan göra själv. [Fritt]

avsnitt kropp innehåller det faktiska svaret och är var du ska titta när det går bra. I det här exemplet får vi HTML, den från Googles startsida. Det är mycket vanligt att REST API: er returnerar svar i JSON-format. Vissa API: er, som vi kommer att se, kräver att du inkluderar en sträng i kroppsavsnittet i din begäran.

avsnitt småkakor kommer att innehålla alla cookies som har mottagits med meddelandet.

Som du själv kan se är det inte svårt att skicka förfrågningar med WordPress HTTP API. Å andra sidan, vad som kan vara svårt med REST API: er är att de är noga med detaljerna i den skickade informationen, vilket är bra för konsekvens. Så var noga med att läsa dokumentationen för de API: er du använder.

Query API

Det är tydligt att de flesta av er kommer att använda HTTP API för att interagera med REST API: er. Du måste därför använda den andra parametern för funktionen wp_remote_get för att klargöra ett visst antal saker, för att autentisera dig, för att förfina dina resultat etc ... Låt oss börja med ett enkelt exempel, som att få stift från en Pinterest-vägg. Alla självrespekterande API kräver autentisering, men vi kommer att kringgå det här med generera ett åtkomsttoken (åtkomsttoken). Koden !

$ begäran = wp_remote_get ('https://api.pinterest.com/v1/boards/ / hemmakontor / stift /? access_token = '); $ pins = json_decode ($ request ['body'], true); if (! tom ($ pins ['data'])) {echo ' '; foreach ($ pins ['data'] som $ pin) {echo ' '. $ pin ['note']. '' '; } eko ' '; }

Se till att byta ut på första radenanvändarnamn-kort> av id för Pinterest-väggen och  genom åtkomsttoken som du genererade själv. Svaret finns i JSON, så den andra raden avkodar det. Stiften finns i $ pins ['data']Så vi går igenom det och sätter stiften i en lista. Du kan klistra in den här koden i en mallfil för ditt tema och se resultatet.

Autentisering

För den här delen, låt oss ta Twitters REST API-autentisering som ett exempel.

Letar du efter de bästa WordPress-teman och plugins?

Ladda ner de bästa plugins och WordPress-teman på Envato och enkelt skapa din webbplats. Redan mer än 49.720.000-nedladdningar. [EXKLUSIV]

När du börjar med ett API är det mycket viktigt att noggrant läsa och förstå djupt dokumentationen. Autentisering är en av de saker som utvecklare ofta kraschar in i. En av orsakerna är att felläsa dokumentationen. Om du är van vid att arbeta med REST API: er kan du hoppa direkt till avsnittet autentisering. När det gäller Twitter är det lätt att missa dokumentationsraden som säger att du måste inkludera karaktärsdelen i din fråga i karaktersektionen grant_type = client_credentials. Underlåtenhet att inkludera det skulle resultera i fullständigt misslyckande, även om allt annat i din kod är bra. Se alltid till att du har läst och förstått dokumentationen. Efter att ha gjort detta för fallet Twitter kan du skapa en POST-begäran som den här, som genererar en åtkomsttoken:

$ key = base64_encode (urlencode ("PKI865f6uvGZA6xvFTtb8IAA: i4pmOV0duXJEgty95Ghth89dh5wDIqfJOovKjs92ei878")); $ request = wp_remote_post ('https://api.twitter.com/oauth2/token', array ('headers' => array ('Authorization' => 'Basic'. $ key, 'Content-Type' => ') application / x-www-form-urlencoded; charset = UTF-8 '),' body '=>' grant_type = client_credentials ',' httpversion '=>' 1.1 ')); $ token = json_decode ($ request ['body']); eko " "; var_dump ($ token); eko" ";

Det första är att koda en åtkomsttoken och en hemlig sträng (de du ser är inte giltiga). Formulera sedan själva begäran. Du kan se att här, enligt Twitters rekommendationer, har vi lagt till två rubriker Tillstånd et Content-Type, Vi har inkluderat kedjan grant_type = client_credentials et httpversion. Utan allt detta skulle vi inte kunna skapa nödvändig åtkomsttoken för att göra framtida förfrågningar till Twitter API. Resultat:

wp-http-api-twitter-token

Nu när du har din åtkomsttoken är det en bra idé att cacha det, eftersom det är giltigt ett tag, och att ta tag i det från Twitters REST API för varje förfrågan kommer inte att göra ditt företag något bra. kodad. Begreppet transienter motsvarar väl detta scenario, låt oss implementera det.

$ token = get_transient ('twitter_access_token'); $ token = (tom ($ token))? get_twitter_access_token (): $ token; $ begäran = wp_remote_get ('https://api.twitter.com/1.1/followers/ids.json?screen_name= & count = 5 ', array (' headers '=> array (' Authorization '=>' Bearer '. $ token,' Content-Type '=>' application / x-www-form-urlencoded; charset = UTF-8 ') ), 'httpversion' => '1.1')); $ token = json_decode ($ request ['body']);

Denna begäran bör få 5 från dina följare om du byter ut med ditt Twitter-användarnamn. I den här koden får vi vår åtkomsttoken från en övergående. Om det senare inte finns där använder vi funktionen get_twitter_access_token (som du kan designa från vårt tidigare exempel). Observera att den här funktionen måste lägga till åtkomsttoken i en övergående.

WordPress HTTP API-verktygsfunktioner

Det finns fyra funktioner som låter dig utföra frågor. De är wp_remote_get, wp_remote_post, wp_remote_head, wp_remote_request. Den sista är generaliserad, dvs du kan använda den med vilken HTTP-metod som helst.

Det finns också 5 funktioner för att hämta en del av ett svar. De är wp_retrieve_body, wp_retrieve_header, wp_retrieve_headers, wp_retrieve_response_code, wp_retrieve_response_message.

Använd HTTP API-funktionerna när det är möjligt när du arbetar med den, så att andra utvecklare enkelt kan förstå din kod.

Skapa enkelt din webbutik

Ladda ner gratis WooCommerce, de bästa e-handelspluggarna för att sälja dina fysiska och digitala produkter på WordPress. [Rekommenderas]

Utvecklingen i WordPress går avgörande mot ett API-driven tillvägagångssätt. För att stanna i badet är det rätt tid för dig att lära dig hur du använder de olika API: erna för WordPress.

Använder du redan ett WordPress API? Varför och hur gör du det? Har du några tips för att göra dem ännu enklare? Dela med oss ​​i vårt kommentaravsnitt.

 

Den här artikeln innehåller kommentarer 0

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *

Den här webbplatsen använder Akismet för att minska oönskade. Läs mer om hur dina kommentarer data används.

Tillbaka till toppen