Vai al contenuto principale

Come utilizzare l'API HTTP di WordPress

Divi: il tema WordPress più semplice da usare

Divi: il miglior tema WordPress di tutti i tempi!

più Download di 901.000, Divi è il tema WordPress più popolare al mondo. È completo, facile da usare e viene fornito con oltre i modelli gratuiti 62. [Consigliato]

Le API di tipo REST sono sempre più popolari tra gli sviluppatori perché sono un mezzo di comunicazione tra le loro applicazioni e servizi web come quelli di Twitter, MailChimp o GitHub. L'arrivo delREST API di WordPress disponibile attraverso plug-in (ma previsto nel kernel per dicembre), offre un'opportunità adeguata per studiare l'API HTTP che già esiste in WordPress. In questo tutorial, ti guiderò attraverso cos'è l'API HTTP di WordPress e ti mostrerò come usarla.

API HTTP

L'API HTTP di WordPress è un modo per trasmettere messaggi tramite il protocollo HTTP, da un'applicazione di un servizio web o un altro sito a WordPress e viceversa. Per accedere a questa pagina, il tuo browser deve effettuare una richiesta HTTP ai server di BlogPasCher. Hanno risposto restituendo una risposta contenente ciò che stai vedendo in questo momento. L'API REST di WordPress ora le consente di partecipare a questo tipo di sistema di richiesta / risposta, consentendo così un disaccoppiamento tra l'interfaccia grafica e il core della piattaforma. Ma per trarne vantaggio, è necessario imparare a utilizzare l'API HTTP di WordPress che offre una serie di metodi e utilità per l'invio di richieste HTTP.

Metodi e risorse HTTP

Il protocollo HTTP è incentrato su metodi e risorse. Le risorse definiscono ciò su cui si desidera agire ei metodi definiscono il tipo di azione da intraprendere. In pratica, le risorse sono URL di oggetti su Internet (ad esempio questo articolo). Dal punto di vista del metodo, ce ne sono alcuni, i più importanti dei quali sono:

- GET : per recuperare una risorsa
- POST : per creare una risorsa
- PUT : Per modificare una risorsa
- DELETE : Per eliminare una risorsa

Richiesta di esempio con l'API HTTP

Per iniziare, vediamo come inviare una semplice richiesta con l'API HTTP. Useremo la funzione wp_remote_get per interrogare il server di Google e recuperare la home page. Questa funzione accetta due parametri, il primo dei quali è la risorsa e il secondo è un elenco di opzioni per specificare i dettagli. Senza ulteriori indugi, passiamo all'azione.

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

il ritorno wp_remote_get è contenuto nella variabile $ teste rappresenta il contenuto della home page che Google ha restituito a seguito della nostra richiesta. Linea var_dump ($ test); ti permette di vedere gli articoli restituiti nella risposta.

la sezione intestazioni contiene informazioni aggiuntive sui messaggi. Alcune API REST dovranno inviare informazioni specifiche nelle query a loro indirizzate.

sezione risposta contiene il codice di stato e la descrizione della risposta. Potresti aver sentito parlare di un errore 404 per pagine non trovate, errori del server 501 o reindirizzamenti 301 e 302. Questi numeri sono codici di errore. Il sito W3.org ha un elenco di tutti Codici di errore HTTP e loro descrizione.

Crea facilmente il tuo sito Web con Elementor

Elementor ti consente di creare facilmente qualsiasi design di sito Web con un aspetto professionale. Smetti di pagare caro per quello che puoi fare da solo. [Free]

sezione stile di vita contiene la risposta effettiva ed è dove dovresti guardare quando le cose stanno andando bene. In questo esempio stiamo ricevendo HTML, quello della home page di Google. È molto comune che le API REST restituiscano risposte in formato JSON. Alcune API, come vedremo, richiederanno di includere una stringa nella sezione del corpo della richiesta.

sezione biscotti conterrà tutti i cookie ricevuti con il messaggio.

Come puoi vedere tu stesso, inviare richieste utilizzando l'API HTTP di WordPress non è difficile. D'altra parte, ciò che può essere difficile con le API REST è che sono esigenti riguardo ai dettagli delle informazioni inviate, il che è positivo per la coerenza. Quindi fai attenzione a leggere la documentazione per le API che stai utilizzando.

API Query

È chiaro che la maggior parte di voi utilizzerà l'API HTTP per interagire con le API REST. Dovrai quindi utilizzare il secondo parametro della funzione wp_remote_get per chiarire un certo numero di cose, per autenticarti, per affinare i tuoi risultati ecc ... Cominciamo con un semplice esempio, come ottenere dei pin da un muro di Pinterest. Qualsiasi API che si rispetti richiede l'autenticazione, ma qui la ignoreremo generare un token di accesso (token di accesso). Il codice !

$ request = wp_remote_get ('https://api.pinterest.com/v1/boards/ / home-office / pins /? access_token = '); $ pins = json_decode ($ request ['body'], true); if (! empty ($ pins ['data'])) {echo ' '; foreach ($ pins ['data'] as $ pin) {echo ' '. $ pin ["nota"]. ' '; } eco ' '; }

Assicurati di sostituire sulla prima rigausername-board> dall'id del muro di Pinterest e  dal token di accesso che hai generato tu stesso. La risposta è in JSON, quindi la seconda riga la decodifica. I pin sono contenuti in $ pins ["data"]Quindi lo esaminiamo e inseriamo i pin in un elenco. Puoi incollare questo codice in un file modello del tuo tema e vedere il risultato.

Autenticazione

Per questa parte, prendiamo come esempio l'autenticazione API REST di Twitter.

Stai cercando i migliori temi e plugin per WordPress?

Scarica i migliori plugin e temi WordPress su Envato e crea facilmente il tuo sito web. Già più di 49.720.000 download. [ESCLUSIVO]

Quando si inizia con un'API, è molto importante leggere attentamente e comprendere a fondo la documentazione. L'autenticazione è una delle cose in cui gli sviluppatori spesso si bloccano. Una delle cause è la lettura errata della documentazione. Se sei abituato a lavorare con le API REST, puoi passare direttamente alla sezione autenticazione. Nel caso di Twitter, è facile perdere la linea di documentazione che dice che è necessario includere nella sezione del corpo della query la stringa di caratteri grant_type = client_credentials. La mancata inclusione comporterebbe un fallimento completo, anche se tutto il resto nel codice va bene. Assicurati sempre di aver letto e compreso la documentazione. Dopo aver fatto ciò per il caso di Twitter, sarai in grado di costruire una richiesta POST come questa, che genera un token di accesso:

$ 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']); eco " "; var_dump ($ token); echo" ";

La prima cosa è codificare un token di accesso e una stringa segreta (quelli che vedi non sono validi). Quindi formulare la richiesta stessa. Puoi vedere che qui, secondo i consigli di Twitter, abbiamo aggiunto due intestazioni Autorizzazione et Content-Type, abbiamo inserito la catena grant_type = client_credentials et httpversion. Senza tutto questo, non saremmo in grado di generare il token di accesso necessario per effettuare richieste future all'API di Twitter. Risultato:

wp-http-api-twitter-token

Ora che hai il tuo token di accesso, è una buona idea metterlo nella cache, poiché è valido per molto tempo, e prenderlo dall'API REST di Twitter per ogni richiesta non ti farà bene. codificato. La nozione di transitori corrisponde bene a questo scenario, implementiamola.

$ token = get_transient ('twitter_access_token'); $ token = (vuoto ($ token))? get_twitter_access_token (): $ token; $ request = 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']);

Questa richiesta dovrebbe ricevere 5 dai tuoi follower se sostituisci dal tuo nome utente Twitter. In questo codice, otteniamo il nostro token di accesso da un transiente. Se quest'ultimo non è presente, utilizziamo la funzione get_twitter_access_token (che puoi progettare dal nostro esempio precedente). Notare che questa funzione dovrà aggiungere il token di accesso in un transitorio.

Funzioni dell'utilità API HTTP di WordPress

Ci sono 4 funzioni che ti permettono di eseguire query. Quelli sono wp_remote_get, wp_remote_post, wp_remote_head, wp_remote_request. L'ultimo è generalizzato, cioè puoi usarlo con qualsiasi metodo HTTP.

Sono inoltre presenti 5 funzioni per recuperare parte di una risposta. Quelli sono wp_retrieve_body, wp_retrieve_header, wp_retrieve_headers, wp_retrieve_response_code, wp_retrieve_response_message.

Usa le funzioni dell'API HTTP il più possibile quando ci lavori, in modo che altri sviluppatori possano comprendere facilmente il tuo codice.

Crea facilmente il tuo negozio online

Scarica gratuitamente WooCommerce, i migliori plug-in di e-commerce per vendere i tuoi prodotti fisici e digitali su WordPress. [Consigliato]

Lo sviluppo in WordPress si sta spostando in modo cruciale verso un approccio basato su API. Per stare nella vasca da bagno, ora è il momento giusto per imparare a utilizzare le diverse API di WordPress.

Usi già un'API di WordPress? Perché e come lo fai? Hai qualche consiglio per renderli ancora più semplici? Condividi con noi nella nostra sezione commenti.

 

Questo articolo contiene i commenti 0

Lascia un commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre indesiderati. Ulteriori informazioni su come vengono utilizzati i dati dei commenti.

Torna in alto
2 azioni
quota2
Tweet
Enregistrer