Mostra tutto quello che vuoi dall'API Envato usando PHP

Se sei inconsapevole, Envato ha un'API stabile e fantastica con cui lavorare è super potente e super semplice. L'ultima versione (al momento della scrittura) è rilasciata v2. In questo articolo, esamineremo come accedere a ogni singolo set pubblico dall'API Envato.


Imparare le basi

Per prima cosa: devi sapere dove trovare l'API, che cos'è e come funziona esattamente. È possibile trovare la versione ufficiale dell'API sui forum, nonché l'aggiornamento al thread dell'API e le informazioni sull'aggiornamento v1.

L'API funziona inviando richieste ad URL personalizzati contenenti dati che desideri vengano restituiti. I dati possono anche essere restituiti in due formati, xml o JSON, che viene restituito dipende da voi. Preferisco tornare come JSON e usare PHP json_decode per trasformare i dati in array annidati.


Cosa realizzeremo

Di seguito, vedrai uno screenshot di tutti i set pubblici attualmente disponibili. Passeremo attraverso ognuno di questi oggi, individualmente, con un esempio di codice funzionante e un'anteprima del risultato finale!

Per ciascun set che tratteremo oggi, descriverò brevemente qual è il punto del set, pubblichi il codice e poi spiegherò in seguito ogni passaggio del codice seguente. Assicurati di fare qualsiasi domanda su uno qualsiasi dei frammenti di codice che trovi di seguito.

Inoltre, sentiti libero di usare il codice e le tecniche apprese in questo tutorial come preferisci!


1. Post del blog

Il i post del blog set consente di interrogare e visualizzare un elenco di post di blog per qualsiasi mercato particolare. Richiede un parametro, che è il marketplace di cui vorresti i post recenti del blog.

 // Inizializza curl $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/blog-posts:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['blog-posts']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ json_data [ 'blog posts'] [$ i] [ 'title'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Consente di esaminare dettagliatamente il frammento sopra riportato, in quanto il resto dei frammenti di codice sembrerà molto simile.

  • Iniziamo iniziando una nuova maniglia di ricciolo. cURL ci permetterà di interrogare l'API con qualsiasi parametro che ci piace. Potresti usare file_get_contents, ma otterrai un incremento delle prestazioni con cURL.
  • Abbiamo impostato il nostro URL di destinazione. Notate come siamo passati nel set i post del blog e poi ThemeForest per il parametro. Inoltre, nota che stiamo richiedendo che i dati siano in formato JSON.
  • Successivamente, impostiamo altre due opzioni cURL. CURLOPT_CONNECTTIMEOUT ci consente di impostare il tempo di timeout per la nostra richiesta, che abbiamo impostato su 5 secondi. L'altra opzione è CURLOPT_RETURNTRANSFER dice a cURL di restituire i dati come stringa invece di emetterli direttamente.
  • Archiviamo i risultati della richiesta cURL in $ ch_data.
  • Ora controlliamo se sono stati effettivamente restituiti alcuni dati, in tal caso decodifichiamo il json e lo trasformiamo in un array annidato.
  • Infine, passiamo in rassegna gli elementi dell'array e stampiamo alcuni dati di base.

Tieni a mente questi dettagli; come ho detto, vedrai questo schema in quasi tutti i set che copriamo, anche se varieranno leggermente.

E una demo dell'output:


2. Thread attivi

Il active-thread set ti permette di estrarre alcuni thread del forum attivi di recente.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/active-threads:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['active-threads']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ json_data [ 'active-fili'] [$ i] [ 'title'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Nota alcune cose qui; uno, abbiamo modificato l'URL della richiesta per riflettere il nuovo set che vogliamo ottenere. In secondo luogo, si noti che i nomi degli array sono cambiati come faranno con ogni nuovo set che richiediamo. Infine, nota come print_r è commentato Questo è molto utile per il debug e la visualizzazione della struttura e della gerarchia dei dati.

E una demo dell'output:


3. Numero di file

Non lasciare che il nome del il numero-di-file mettiti in ridicolo. Non è il numero di file di un utente (ma lo copriremo!) Ma piuttosto il numero di file in una determinata categoria da un determinato mercato. Ad esempio, questo ti permetterebbe di scoprire quanti modelli di siti completi abbiamo su ThemeForest, cosa che faremo ora.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/number-of-files:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['numero-di-file']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' numero-di-file '] [$ i] [' categoria '],' - ', $ json_data [' numero-di-file '] [$ i] [' number_of_files '],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Ovviamente, la nostra richiesta di URL è cambiata e abbiamo superato il parametro di ThemeForest, che è il mercato da cui estrarremo i dati. Di seguito è riportato un esempio dell'output di questo snippet:


4. Nuovi file

Proprio come la homepage di ThemeForest mostra un elenco di nuovi file, anche tu puoi accedere a nuovi file da un determinato mercato dall'utilizzo nuovi-files impostato. Una bella aggiunta di questo set è la possibilità di visualizzare anche la miniatura dell'oggetto, come vedrai tra poco.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/new-files:themeforest,wordpress.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['new-file']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ json_data [ 'nuovi-files'] [$ i] [ 'item'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

A differenza dei precedenti frammenti, questo set richiede due parametri. Richiede rispettivamente il mercato e la categoria desiderata. Si noti che abbiamo aggiunto alcuni PHP e markup all'interno del nostro ciclo for. Questo ci permette di visualizzare una miniatura dell'elemento.

Di seguito è riportato un esempio di output di questo frammento:


5. Popolare

Analogamente alla visualizzazione di articoli caricati di recente in un determinato mercato, possiamo anche visualizzare articoli popolari da un determinato mercato. Forse vuoi visualizzare un elenco di file ThemeForest sul tuo blog. Questo frammento raggiungerebbe questo obiettivo.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/popular:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ json_short = $ json_data ['popular'] ['items_last_week']; // Salvaci un po 'di digitazione. $ data_count = count ($ json_short) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ Json_short [$ i] [ 'item'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Nota come abbiamo aggiunto una variabile aggiuntiva chiamata json_short per darci un po 'di digitazione mentre attraversiamo l'array annidato di dati restituiti. In poche righe di codice, siamo in grado di visualizzare la miniatura, il nome e il collegamento dell'articolo come illustrato di seguito:


6. Nuovi file da utente

Il new-file-da-utente è un set popolare che abbiamo utilizzato qualche tempo fa quando abbiamo creato un plugin per WordPress con l'API Envato. Questo set ti consente di recuperare i 10 file più recenti che un utente ha caricato e i dati che lo accompagnano. Puoi usare questo set per promuovere te stesso sul tuo blog automaticamente ogni volta che carichi un nuovo oggetto.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/new-files-from-user:creatingdrew,themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['new-files-from-user']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ Json_data [ 'new-file-da-user'] [$ i] [ 'item'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

I parametri richiesti sono lo username e il marketplace desiderato. Il resto dello snippet segue la stessa logica di cui abbiamo discusso. Di seguito è riportato un esempio dell'output due dei miei file recenti.


7. Nuovi file casuali

Il random-nuovi-files set è abbastanza auto esplicativo e agisce come previsto. Restituisce un elenco casuale di file appena caricati da un determinato marketplace. Restituisce anche meta dati sul file che sei libero di usare e manipolare.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/random-new-files:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['random-new-files']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ json_data [ 'random-nuovi-files'] [$ i] [ 'item'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Non c'è niente che non hai visto già qui. Stiamo usando questo set per visualizzare alcune miniature e il titolo. Assicurati di controllare tutti i dati che vengono restituiti però, potresti essere interessato a questo. Uno screenshot dell'output è qui sotto:


8. Cerca

Esatto, puoi effettivamente utilizzare l'API per cercare dati personalizzati in categorie personalizzate da mercati personalizzati! Gli sviluppatori pensavano davvero che l'API fosse attiva, e il ricerca set è la prova perfetta di ciò. Diamo un'occhiata a un breve snippet di ricerca. Tieni presente che potresti prendere tutti questi dati dall'input dell'utente e configurare una ricerca personalizzata Envato sul tuo sito, ma questo va oltre lo scopo di questo tutorial.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/search:themeforest,wordpress,clean.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['search']) -1; eco '
    '; per ($ i = 0; $ i <= $data_count; $i++) echo '
  • '$ Json_data [ 'ricerca'] [$ i] [ 'descrizione'],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Sopra sopporta alcune spiegazioni.

  • Abbiamo modificato l'URL della richiesta nel set di ricerca.
  • Il set di ricerca richiede tre parametri, il marketplace, la categoria da cercare e il termine da cercare.
  • Qui, abbiamo cercato il termine pulito

Raccomando di verificare la documentazione dell'API e di verificare tutto ciò che è possibile con il set di ricerca.


9. Utente

Il utente il set di dati restituisce una piccola quantità di informazioni su un determinato utente. Si noti che la chiave API è non necessario.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/user:collis.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); eco '
    '; eco '
  • Location = ', $ json_data [' user '] [' location '],'
  • '; eco '
  • Username = ', $ json_data [' user '] [' username '],'
  • '; eco '
  • Vendite = ', $ json_data [' utente '] [' vendite '],'
  • '; eco '
'; else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.';

Dato che restituiamo le informazioni solo da un utente, non è necessario eseguire alcun ciclo: è sufficiente emettere i dati.


10. Uscite

Probabilmente non avrai mai bisogno di usare il rilasci set, ma ho detto che avremmo coperto ogni set pubblico, ed è quello che fanno bene. Il set di versioni restituisce il rilascio e imposta le informazioni per l'API. Fondamentalmente, è semplicemente usato per generare documentazione. Nel caso in cui desideri che lo snippet visualizzi queste informazioni, potresti trovarlo di seguito:

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/releases.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); print_r ($ json_data);  else echo 'Ci dispiace, ma si è verificato un problema durante la connessione all'API.'; 

Grazie per aver letto

Abbiamo coperto ogni singolo set elencato nel set pubblico di v1 dell'API! Sentiti libero di darti una pacca sulla schiena e vai a mangiare un po 'di pancetta, te lo meriti.

Questo articolo è stato originariamente pubblicato sul blog ThemeForest alla fine dell'anno scorso. Attualmente stiamo effettuando il porting su alcuni degli articoli più popolari su Nettuts+.