Come utilizzare gli ultimi aggiornamenti all'API del Marketplace

I marketplace di Envato stanno esplodendo, con oltre 600.000 membri e oltre 65k file!

Un'ottima aggiunta ai marketplace è l'API, che sta diventando sempre più popolare ogni giorno, grazie agli ultimi aggiornamenti! I nostri fantastici sviluppatori di marketplace ascoltano costantemente i feedback della community e hanno aggiunto alcune funzionalità per la release edge!

Assicurati di dare un'occhiata ad alcune delle applicazioni disponibili sul Web - tutte supportate dall'API Envato.

Oggi daremo un'occhiata alle ultime funzionalità API! Unisciti a me dopo il salto!


Cos'è un'API?

Un'API (Application Programming Interface) è un insieme particolare di regole e specifiche che un programma software può seguire per accedere e utilizzare i servizi e le risorse fornite da un altro particolare programma software. Funge da interfaccia tra diversi programmi software e facilita la loro interazione, in modo simile all'interfaccia utente che facilita l'interazione tra uomo e computer.

API Web

Le API Web consentono la combinazione di più servizi in nuove applicazioni, note come mashup.

Quando viene utilizzata nel contesto dello sviluppo Web, un'API è in genere un insieme definito di messaggi di richiesta HTTP (Hypertext Transfer Protocol), insieme a una definizione della struttura dei messaggi di risposta, che di solito è in un XML (Extensible Markup Language) o JavaScript Formato Object Notation (JSON).

Mentre "Web API" è praticamente un sinonimo per il servizio web, la recente tendenza si sta spostando dai servizi basati su Simple Object Access Protocol (SOAP) verso comunicazioni di stile REST (Representational State Transfer) più dirette. Le API Web consentono la combinazione di più servizi in nuove applicazioni note come mashup.


Le API sono utilizzate molto?

La maggior parte degli sviluppatori conoscerà la risposta a questa domanda, ma per gli altri la risposta è clamorosa .

Le API si trovano ovunque; sono particolarmente popolari nel settore dei social network! La maggior parte delle reti di grandi dimensioni, compresi Twitter e Facebook, fornisce API per interagire con il loro servizio.


Nuove funzionalità API

In questo tutorial, daremo solo un'occhiata alle nuove funzionalità dell'API. Se vuoi saperne di più sulle funzionalità API esistenti, assicurati di dare un'occhiata al tutorial di Drew sull'argomento.

Pubblico

  • articolo - Dettagli per un singolo oggetto, specificato dall'ID indicato.
  • item-prezzi - Restituisci le licenze e i prezzi disponibili per l'ID dell'articolo specificato.
  • user-articoli per sito - Mostra il numero di oggetti che un autore ha in vendita su ciascun sito. Richiede un nome utente, ad es. Collis.

Privato

  • verify-acquisto - Dettagli di un acquisto. Richiede un codice di acquisto, ad es. verify-acquisto: 550e8400-E29b-41d4-a716-446655440000.
  • download-acquisto - URL per scaricare l'acquisto. Richiede un codice di acquisto, ad es. download-acquisto: 550e8400-E29b-41d4-a716-446655440000

Requisiti

Per iniziare con l'API, avrai bisogno di un account Envato Marketplace e una chiave API.

Puoi recuperare la tua chiave API visitando la pagina delle impostazioni dell'account.

Useremo una funzione PHP, chiamata json_decode; questo ci consente di recuperare i dati API e convertirli in un array. Questa funzione è inclusa in PHP 5> = 5.2.0.

Hai tutto? Iniziamo!


Step 1 - Costruire la nostra classe

Iniziamo con la creazione di una semplice classe PHP, che ci consentirà di recuperare i dati dall'API.

Crea una nuova cartella di progetto e crea un'altra directory chiamata classi, per mantenere tutto organizzato. All'interno di questa cartella, aggiungi un nuovo file PHP chiamato envato.api.class.php

Innanzitutto, costruiremo lo scheletro di base della nostra classe:

 

Passaggio 2: variabili globali

Abbiamo bisogno di un paio di variabili all'interno della nostra classe per renderlo flessibile. Per capire quali variabili abbiamo bisogno, dobbiamo dare un'occhiata alla formattazione dell'URL dell'API.

  • Pubblico - http://marketplace.envato.com/api/edge/set.json
  • Privato - http://marketplace.envato.com/api/edge/username/api-key/set.json

Come puoi vedere, abbiamo bisogno di un totale di quattro variabili:

  • Url API
  • Impostato
  • Nome utente
  • Chiave API

Creiamo queste variabili private in questo modo:

 class envatoAPI private $ api_url = 'http://marketplace.envato.com/api/edge/'; // URL predefinito privato $ api_set; // Ciò manterrà il set di API scelto come nome utente $ privato user-items-by-site; // Il nome utente dell'autore aveva solo bisogno di accedere ai set privati ​​private $ api_key; // La chiave API dell'autore aveva solo bisogno di accedere ai set privati

Step 3 - Metodi Setter & Getter

Mi piace usare i metodi setter e getter quando si creano classi in PHP. Quindi, quali sono esattamente questi metodi? Ho fatto un piccolo esempio qui sotto:

 $ API = new envatoAPI (); $ API-> api_url = 'http://nettuts.com'; echo $ API-> api_url;

Il codice sopra non funzionerà e dovrebbe restituire il seguente errore:

Errore irreversibile: impossibile accedere alla proprietà privata envatoAPI :: $ api_url

Poiché la variabile è impostata su privato, non possiamo accedervi o modificarla. Se abbiamo bisogno di cambiare l'URL dell'API senza modificare il file di classe, potremmo fare qualcosa sulla falsariga di:

 $ API = new envatoAPI (); $ API-> set_api_url ( 'http://nettuts.com'); echo $ API-> get_api_url ();

Ora torna alla classe PHP e aggiungi la funzione, set_api_url.

 / ** * set_api_url () * * Imposta l'URL dell'API * * @accesso pubblico * @param stringa * @return void * / funzione pubblica set_api_url ($ url) $ this-> api_url = $ url; 

Poiché questa funzione è all'interno della nostra classe, possiamo accedere e modificare la variabile privata api_url. Ora in questo tutorial, non abbiamo davvero bisogno di getter, ma ne creiamo ancora uno per fornirti una migliore comprensione del concetto.

 / ** * get_api_url () * * Restituisce l'URL dell'API * * @access public * @return string * / public function get_api_url () return $ this-> api_url; 

Come potresti aver dedotto a questo punto, per esempio non abbiamo bisogno di una funzione get per la chiave API. Questo rende la nostra classe più sicura.


Step 4 - Completamento del resto dei setter

Abbiamo già finito un setter, quindi ne restano tre e tutti hanno la stessa struttura.

Imposta il nome utente

 / ** * set_username () * * Imposta lo Username * * @access public * @param string * @return void * / public function set_username ($ username) $ this-> username = $ username; 

Imposta la chiave API

 / ** * set_api_key () * * Imposta la chiave API * * @accesso pubblico * @param stringa * @return void * / funzione pubblica set_api_key ($ api_key) $ this-> api_key = $ api_key; 

Imposta set API

 / ** * set_api_set () * * Imposta il set API * * @accesso pubblico * @param stringa * @return void * / public function set_api_set ($ api_set) $ this-> api_set = $ api_set; 

Ora siamo in grado di impostare tutte le variabili in questo modo:

 set_api_url (); - Non è necessario modificare l'URL dell'API // $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); - Abbiamo solo bisogno di impostare la chiave API per recuperare i dati dal set privato // $ API-> set_username ('JohnDoe'); // - Abbiamo solo bisogno di impostare il nome utente del Marketplace Envato per recuperare i dati dal set privato $ API-> set_api_set ('popolare: codecanyon'); // Imposta il set API su richiesta?>

Passaggio 4: richiesta dati

Costruiamo una funzione che richiederà i dati dall'API Envato Marketplace. Iniziamo creando una nuova funzione pubblica chiamata richiesta.

 / ** * request () * * Richiedi i dati dall'API * * @access public * @param void * @return array * / public function request () 

Possiamo usare la stessa tecnica usata nel tutorial precedente. Per richiedere i dati dall'API, possiamo usare cURL. Iniziamo creando l'URL dell'API: se sono impostati il ​​nome utente e la chiave API, abbiamo bisogno di un URL diverso.

 if (! empty ($ this-> username) &&! empty ($ this-> api_key)) // Costruisci l'url privato $ this-> api_url. = $ this-> username. '/'.$this->api_key.'/'.$this->api_set. '.Json'; // Esempio: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json else // Costruisci l'url pubblico $ this-> api_url. = $ This-> api_set. '.Json'; // Esempio: http://marketplace.envato.com/api/edge/popular:codecanyon.json

Inviamo una richiesta all'API utilizzando cURL in questo modo:

 $ ch = curl_init ($ this-> api_url); // Inizializza una sessione cURL e imposta l'URL dell'API curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Il numero di secondi da attendere durante il tentativo di connessione a curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Restituisce il trasferimento come stringa invece di emetterlo direttamente. $ ch_data = curl_exec ($ ch); // Esegue una sessione cURL curl_close ($ ch); // Chiudi una sessione cURL

Ora abbiamo una variabile, chiamata $ ch_data che contiene una stringa formattata JSON. Prima di poter fare qualcosa con questo, abbiamo bisogno di decodificarlo in un array.

 // Controlla se la variabile contiene dati if (! Empty ($ ch_data)) return json_decode ($ ch_data, true); // Decodifica i dati richiesti in un array else return ('Non siamo in grado di recuperare alcuna informazione dall'API.'); // Restituisce il messaggio di errore

La funzione nella sua interezza è così:

 richiesta di funzione pubblica () if (! empty ($ this-> username) &&! empty ($ this-> api_key)) // Costruisci l'url privato $ this-> api_url. = $ this-> username. '/'.$this->api_key.'/'.$this->api_set. '.Json';  else // Costruisci l'url pubblico $ this-> api_url. = $ this-> api_set. '.Json';  $ ch = curl_init ($ this-> api_url); // Inizializza una sessione cURL e imposta l'URL dell'API curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Il numero di secondi da attendere durante il tentativo di connessione a curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Restituisce il trasferimento come stringa invece di emetterlo direttamente. $ ch_data = curl_exec ($ ch); // Esegue una sessione cURL curl_close ($ ch); // Chiude una sessione cURL // Controlla se la variabile contiene dati if (! Empty ($ ch_data)) return json_decode ($ ch_data, true); // Decodifica i dati richiesti in un array else return ('Non siamo in grado di recuperare alcuna informazione dall'API.'); // Restituisci il messaggio di errore

Passaggio 5: test della funzione

Proviamo la nostra classe e richiediamo alcuni dati dall'API:

 set_api_url (); // $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); // $ API-> set_username ( 'JohnDoe'); // Envato username $ API-> set_api_set ('popolare: codecanyon'); // Imposta il set API per richiedere echo '
'; print_r ($ API-> request ()); eco '
'; ?>

Passaggio 6: test delle nuove funzionalità dell'API pubblica

Ora che la nostra classe funziona, è giunto il momento di creare alcuni esempi con le nuove funzionalità dell'API.

Articolo

Per richiedere informazioni su un articolo del marketplace, dobbiamo fornire all'API un ID articolo. Puoi trovare l'ID dell'articolo all'interno dell'URL dell'elemento del marketplace.

Ora che abbiamo il nostro ID, chiediamo le informazioni sull'articolo:

 set_api_set ( 'articolo: 147510'); // Imposta il set API per richiedere echo '
'; print_r ($ API-> request ()); eco '
'; ?>

I seguenti dati devono essere restituiti:

 Array ([item] => Array ([sales] => 16 [rating] => 5 [cost] => 25.00 [utente] => Philo01 [loaded_on] => Tue Dic 21 03:13:24 +1100 2010 [ url] => https://codecanyon.net/item/wordpress-car-dealer/147510 [live_preview_url] => images_26_4 / how-to-use-the-latest-updates-to-the-marketplace-api_3.jpg [ thumbnail] => http://s3.envato.com/files/1410780/Car_dealer_avatar.jpg [tag] => facile da usare, facile da configurare, inventario auto, rivenditore di auto, concessionario, 2 build in cursori, tipo di post nativo & tassonomie, oltre 35 impostazioni, elenca tutte le tue auto, sistema di inventario [id] => 147510 [elemento] => Concessionario di auto WordPress))

Ora costruiamo una semplice pagina che mostrerà le informazioni di cui sopra in un modo che gli altri utenti capiranno. Innanzitutto, dobbiamo assegnare i dati dell'API a una variabile:

 $ API = new envatoAPI (); $ API-> set_api_set ( 'articolo: 147510'); // Imposta il set API per richiedere $ data = $ API-> request ();

Ora possiamo visualizzare i dati dall'API nel seguente formato: $ data [ 'item'] [ 'chiave'].

 set_api_set ( 'articolo: 147510'); // Imposta il set API per richiedere $ data = $ API-> request (); ?> 

">

Di , disponibile solo !

L'HTML dopo che il PHP è stato analizzato:

 

Concessionario auto WordPress

Di Philo01, disponibile per soli 25,00!

item-prezzi

Invece di creare una nuova richiesta API per saperne di più sul prezzo dell'articolo e sulla licenza, possiamo semplicemente aggiungerla all'attuale set API.

 $ API = new envatoAPI (); $ API-> set_api_set ( 'articolo: 147510 + item-prezzi: 147510'); // Imposta il set API per richiedere $ data = $ API-> request ();

La risposta dell'API è riportata di seguito:

 [item-prices] => Array ([0] => Array ([licenza] => Licenza regolare [prezzo] => 25,00) [1] => Array ([licenza] => Licenza estesa [prezzo] => 175,00 ))

Ora possiamo usare queste informazioni restituite nella nostra pagina degli articoli.

 

">

Di

Prezzi:

    '. $ p ['licenza']. '- $'. $ p ['prezzo']. ''; ?>

user-articoli per sito

Per terminarlo, aggiungeremo il numero di elementi che l'utente ha. Possiamo semplicemente aggiungerlo al set di API.

 $ API-> set_api_set ( 'voce: 147510 + item-prezzi: 147510 + user-articoli per sito: Philo01');

E la risposta:

 [user-items-by-site] => Array ([0] => Array ([site] => ThemeForest [items] => 1) [1] => Array ([site] => CodeCanyon [items] = > 5))

Aggiungiamo queste informazioni alla nostra pagina.

 

">

Di

Prezzi:

    '. $ p ['licenza']. '- $'. $ p ['prezzo']. ''; ?>

ha più articoli nel Marketplace di Envato

    '. $ p ['articoli']. ' a ' . $ p ['sito']. ''; ?>

Passaggio 7: test delle nuove funzionalità dell'API privata

Per utilizzare le funzionalità API private, avrai bisogno di un account marketplace e di un codice di acquisto da uno dei tuoi clienti. Per prima cosa dobbiamo definire queste informazioni.

 $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe');

verify-acquisto

Questo cambierà automaticamente l'URL dell'API dal pubblico al set privato. Per rendere le cose un po 'più dinamiche, possiamo creare una piccola forma in cui l'utente può inserire alcune informazioni per verificare il suo acquisto.

Nota: Quando crei il tuo sito web, non usare stili in linea come questo!

  

Verifica l'acquisto

Questo ci dà una forma di base in questo modo:

Ora passiamo alla parte PHP.

Innanzitutto, dobbiamo verificare se il modulo è stato inviato con i campi richiesti compilati. Se lo stai utilizzando su un sito web dal vivo, ricorda di aggiungere ulteriori convalide per rendere le cose più sicure.

 if (isset ($ _ POST ['submit'])) // Assegna i dati alle variabili $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; // Controlla se tutti i campi sono compilati se (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) // API Request

E ora la richiesta API.

 if (isset ($ _ POST ['submit'])) // Assegna i dati alle variabili $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; // Controlla se tutti i campi sono compilati se (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verify-purchase:'. $ Purchase_code); $ data = $ API-> request (); 

Una risposta API valida sarà simile a questa:

 Array ([verify-purchase] => Array ([licenza] => Licenza regolare [item_id] => 147510 [acquirente] => EnvatoDemo [created_at] => Gio 31 dicembre 08:28:03 +1100 2009 [item_name] = > Concessionario auto WordPress))

Se la richiesta non è valida, l'API restituirà un array vuoto. Se riceviamo una risposta dall'API, significa che il codice di acquisto è corretto. Nell'interesse di renderlo più sicuro, lo assoceremo all'ID e al nome utente inseriti.

 if (isset ($ _ POST ['submit'])) // Assegna i dati alle variabili $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; // Controlla se tutti i campi sono compilati se (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verify-purchase:'. $ Purchase_code); $ data = $ API-> request (); if (! empty ($ data)) // Abbiamo una risposta API valida, corrispondiamo all'id oggetto e al nome utente if ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data [ 'verify-purchase'] ['buyer'] == $ username) // Tutto sembra essere corretto! Acquisto verificato! // Mostra alcune informazioni come data di acquisto e licenza echo '

Hai acquistato l'oggetto su '. $ data ['verify-purchase'] ['created_at']. ' con il ' . $ data ['verify-purchase'] ['license']. '!

'; else // La risposta dall'API era vuota, errore di ritorno echo '

Siamo spiacenti, non siamo in grado di verificare il tuo acquisto.

';

download-acquisto

Il set di download-acquisto ti consente di scaricare i tuoi acquisti senza visitare il marketplace.

Nota: l'acquisto del download funziona solo quando si utilizza la propria chiave API e un codice di acquisto di un prodotto che è stato acquistato.

 

Scarica elemento

Ora che abbiamo la nostra casella di controllo, apportiamo alcune modifiche al processo di verifica.

Inizieremo creando una nuova variabile.

 // Assegna i dati alle variabili $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; $ download = (isset ($ _ POST ['download']))? $ _POST ['download']: ";

Abbiamo anche bisogno di apportare alcune modifiche al codice rimanente:

 if (isset ($ _ POST ['submit'])) // Assegna i dati alle variabili $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; $ download = (isset ($ _ POST ['download']))? $ _POST ['download']: "; // Controlla se tutti i campi sono compilati se (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI () ; $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ('JohnDoe'); // Se il download è selezionato, richiedi il set di acquisto-download se (! Empty ($ download)) $ API-> set_api_set ('download-acquisto:'. $ purchase_code); $ data = $ API-> request (); // Imposta la posizione dell'intestazione sull'URL di download fornito dall'intestazione dell'API ("Posizione:". $ dati ['download- purchase '] [' download_url ']); else // La casella di controllo download non è stata selezionata, quindi verifica l'acquisto $ API-> set_api_set (' verify-purchase: '. $ purchase_code); $ data = $ API-> richiesta (); if (! empty ($ data)) // Abbiamo una risposta API valida, abbiniamo l'ID oggetto e il nome utente if ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data ['verify-purchase'] ['buyer'] == $ username) // Tutto sembra essere corretto! Acquisto verificato! // Mostra alcune informazioni come data di acquisto e licenza echo '

Hai acquistato l'oggetto su '. $ data ['verify-purchase'] ['created_at']. ' con il ' . $ data ['verify-purchase'] ['license']. '!

'; else // La risposta dall'API era vuota, errore di ritorno echo '

Siamo spiacenti, non siamo in grado di verificare il tuo acquisto.

';

Con questi cambiamenti in atto, la risposta dovrebbe essere così:

 Array ([download-acquisto] => Array ([download_url] => http: //download/ourfile.zip? AWSAccessKeyId = 12345 e scade = 6789 e firma = HAoYF962% 53faf))

Conclusione

Spero che tu abbia imparato qualcosa sull'API del marketplace di Envato. Se è così, allora metti questa conoscenza da usare e costruisci alcune applicazioni dolci! Grazie mille per la lettura e facci sapere se hai domande o dubbi.