Cum se utilizează cele mai recente actualizări la API Marketplace

Piețele Envato explodează, cu mai mult de 600 de membri și peste 65.000 de fișiere!

Un plus extraordinar pentru piețe este API-ul, care devine din ce în ce mai popular în fiecare zi, grație ultimelor actualizări! Piața noastră minunată de pe piață ascultă în mod constant feedback-ul comunității, și au adăugat unele caracteristici dulci de la lansarea margine!

Asigurați-vă că ați verificat unele dintre aplicațiile disponibile în jurul rețelei web - toate alimentate de API-ul Envato.

Astăzi, vom analiza cele mai recente funcții API! Alătură-mi-mă după salt!


Ce este un API?

O interfață de programare a aplicațiilor (API) este un set special de reguli și specificații pe care un program software le poate urma pentru a accesa și a utiliza serviciile și resursele furnizate de un alt program software special. Acesta servește ca interfață între diferite programe software și facilitează interacțiunea lor, similar cu modul în care interfața cu utilizatorul facilitează interacțiunea dintre oameni și computere.

API Web

Aplicațiile web API permit combinarea mai multor servicii în aplicații noi, cunoscute sub numele de mashups.

Atunci când este utilizat în contextul dezvoltării web, un API este în mod tipic un set definit de mesaje de solicitare a protocolului de transfer de tip Hypertext Transfer Protocol (HTTP), împreună cu o definiție a structurii mesajelor de răspuns, care este de obicei într-o limbă extensibilă (XML) sau JavaScript Formatul Notă Obiect (JSON).

În timp ce "Web API" este practic un sinonim pentru serviciul web, tendința recentă se îndepărtează de serviciile bazate pe Simple Object Access Protocol (SOAP), spre comunicații de stil mai reprezentative de transfer de stat (REST). API-urile web permit combinarea mai multor servicii în aplicații noi cunoscute sub numele de mashups.


API-urile sunt folosite mult?

Cei mai mulți dezvoltatori vor ști răspunsul la această întrebare, dar pentru ceilalți, răspunsul este unul răsunător DA.

API-urile se găsesc peste tot; ele sunt partecicular populare în sectorul de rețele sociale! Majoritatea rețelelor mari, inclusiv Twitter și Facebook, oferă API-urilor pentru a interacționa cu serviciile lor.


Noi caracteristici API

În acest tutorial, vom arunca o privire doar la noile caracteristici API. Dacă doriți să aflați mai multe despre funcțiile API existente, asigurați-vă că ați verificat tutorialul lui Drew pe acest subiect.

Public

  • articol - Detalii pentru un singur element specificat de ID-ul dat.
  • element-preturi - Returnați licențele disponibile și prețurile pentru codul de identificare dat.
  • user-elemente-cu-site- - Afișați numărul de articole pe care un autor le poate vinde pe fiecare site. Necesită un nume de utilizator, de ex. Collis.

Privat

  • verifica-cumpărare - Detalii despre o achiziție. Necesită un cod de achiziție, de ex. verifica-cumpărare: 550e8400-e29b-41d4-a716-446655440000.
  • descărcare-cumpărare - URL pentru descărcarea de cumpărare. Necesită un cod de achiziție, de ex. descărcare-cumpărare: 550e8400-e29b-41d4-a716-446655440000

cerinţe

Pentru a începe cu API, veți avea nevoie de un cont Envato Marketplace și de o cheie API.

Puteți să preluați cheia API accesând pagina cu setările contului.

Vom folosi o funcție PHP, numită json_decode; acest lucru ne permite să preluăm datele API și să le convertim într-o matrice. Această funcție este inclusă în PHP 5> = 5.2.0.

Ai totul? Să începem!


Pasul 1 - Construirea clasei noastre

Să începem prin construirea unei clase simple PHP, care ne va permite să preluăm datele din API.

Creați un nou director de proiect și creați un alt director numit clase, pentru a păstra totul organizat. În acest director, adăugați un nou fișier PHP numit envato.api.class.php

În primul rând, vom construi scheletul de bază al clasei noastre:

 

Pasul 2 - Variabile globale

Avem nevoie de câteva variabile în clasa noastră pentru a fi flexibile. Pentru a afla care sunt variabilele de care avem nevoie, trebuie să aruncăm o privire la formatul url al adresei API.

  • Public - http://marketplace.envato.com/api/edge/set.json
  • Privat - http://marketplace.envato.com/api/edge/username/api-key/set.json

După cum puteți vedea, avem nevoie de un total de patru variabile:

  • Adresă URL API
  • A stabilit
  • Nume de utilizator
  • Cheia API

Să creăm aceste variabile private cum ar fi:

 clasa envatoAPI privată $ api_url = 'http://marketplace.envato.com/api/edge/'; // Adresa URL implicită privată $ api_set; // Aceasta va păstra setul API ales ca "user-items-by-site" privat $ username; // Numele de utilizator al autorului era necesar numai pentru a accesa seturile private privat $ api_key; // Cheia api a autorului a fost necesară doar pentru a accesa seturile private

Pasul 3 - Metode Setter & Getter

Îmi place să folosesc metode setter și getter atunci când construiesc clase în PHP. Deci, ce sunt aceste metode? Am făcut un mic exemplu de mai jos:

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

Codul de mai sus nu va funcționa și ar trebui să returneze următoarea eroare:

Eroare fatală: Nu se poate accesa proprietatea privată envatoAPI :: $ api_url

Deoarece variabila este setată la privat, nu putem accesa sau modifica aceasta. Dacă trebuie să modificăm urlul API fără a modifica fișierul de clasă, am putea face ceva după cum urmează:

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

Acum, reveniți la clasa PHP și adăugați funcția, set_api_url.

 / ** * set_api_url () * * Setați URL-ul API * * @acces public * @param string * @return void * / funcția publică set_api_url ($ url) $ this-> api_url = $ url; 

Deoarece această funcție este în clasa noastră, putem accesa și modifica variabila privată api_url. Acum, în acest tutorial, nu avem nevoie de getters, ci să creăm încă unul care să vă ofere o mai bună înțelegere a conceptului.

 / ** * get_api_url () * * Revenire URL API * * @ acces public * @return string * / functie publica get_api_url () return $ this-> api_url; 

Așa cum ați putea deduce în acest moment, nu avem nevoie de o funcțiune pentru tasta API, de exemplu. Acest lucru face ca clasa noastră să fie mai sigură.


Pasul 4 - Completarea restului de setteri

Am terminat deja un setter, deci sunt trei rămase și toate au aceeași structură.

Setați numele de utilizator

 / ** * set_username () * * Setați numele de utilizator * * @access public * @param string * @return void * / funcția publică set_username ($ username) $ this-> username = $ username; 

Setați cheia API

 / ** * set_api_key () * * Setați cheia API * * @acces public * @param string * @return void * / funcția publică set_api_key ($ api_key) $ this-> api_key = $ api_key; 

Setați setarea API

 / ** * set_api_set () * * Setați setul API * * @acces public * @param string * @return void * / funcția publică set_api_set ($ api_set) $ this-> api_set = $ api_set; 

Acum suntem capabili să setăm toate variabilele de genul:

 set_api_url (); - Nu trebuie să modificăm adresa URL API // $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); - Trebuie doar să setăm cheia API pentru a prelua datele din setul privat // $ API-> set_username ('JohnDoe'); // - Trebuie doar să setăm numele de utilizator Envato Marketplace pentru a prelua datele din setul privat $ API-> set_api_set ('popular: codecanyon'); // Setați setul API să solicite?>

Pasul 4 - Solicitare de date

Să construim o funcție care va solicita datele din API-ul Envato Marketplace. Începem prin crearea unei noi funcții publice numite cerere.

 / ** * cerere () * * Solicitare date din API * * @ acces public * @param void * @return array * / request public function () 

Putem folosi aceeași tehnică folosită în tutorialul anterior. Pentru a solicita datele din API, putem folosi cURL. Să începem prin construirea adresei API - dacă sunt setate numele de utilizator și cheia API, avem nevoie de un alt url.

 dacă empty ($ this-> username) &&! empty ($ this-> api_key)) // Construiește urlul privat $ this-> api_url. = $ this-> numele de utilizator. '/'.this->api_key./'.$this->api_set. '.Json'; // Exemplu: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json altceva // Construiește url public $ this-> api_url. = $ This-> api_set. '.Json'; // Exemplul: http://marketplace.envato.com/api/edge/popular:codecanyon.json

Vom trimite o cerere către API utilizând cURL după cum urmează:

 $ ch = curl_init ($ această-> api_url); // Inițializați o sesiune cURL și setați URL-ul API curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Numărul de secunde de așteptat în timp ce încercați să vă conectați curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Returnați transferul ca un șir în loc să-l expediați direct. $ ch_data = curl_exec ($ ch); // Efectuați o sesiune cURL curl_close ($ ch); // Închideți o sesiune cURL

Acum avem o variabilă, numită $ ch_data care conține un șir formatat în JSON. Înainte de a putea face ceva cu acest lucru, trebuie să-l decodăm într-o matrice.

 // Verificați dacă variabila conține date dacă (! Empty ($ ch_data)) returnează json_decode ($ ch_data, true); // Decodați datele solicitate într-o matrice altceva return ("Nu putem prelua nici o informație din API"); // Mesaj de eroare returnat

Funcția în ansamblul său arată astfel:

 cererea funcției publice () if (! empty ($ this-> username) &&! empty ($ this-> api_key)) // Construiește adresa URL privată $ this-> api_url. = $ this-> username. '/'.this->api_key./'.$this->api_set. '.Json';  altfel // Construiește url public $ this-> api_url. = $ this-> api_set. '.Json';  $ ch = curl_init ($ acest-> api_url); // Inițializați o sesiune cURL și setați URL-ul API curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Numărul de secunde de așteptat în timp ce încercați să vă conectați curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Returnați transferul ca un șir în loc să-l expediați direct. $ ch_data = curl_exec ($ ch); // Efectuați o sesiune cURL curl_close ($ ch); // Închideți o sesiune cURL // Verificați dacă variabila conține date dacă (! Empty ($ ch_data)) returnează json_decode ($ ch_data, true); // Decodați datele solicitate într-o matrice altceva return ("Nu putem prelua nici o informație din API"); // Mesaj de eroare returnat

Pasul 5 - Testarea funcției

Să încercăm clasa noastră și să solicităm date din API:

 set_api_url (); // $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); // $ API-> set_username ( 'JohnDoe'); // Envato nume utilizator $ API-> set_api_set ('popular: codecanyon'); // Setați setul API pentru a solicita ecou '
„; print_r ($ API-> cerere ()); echo "
„; ?>

Pasul 6 - Testarea noilor caracteristici ale API-ului public

Acum că clasa noastră funcționează, este timpul să construim câteva exemple cu noile caracteristici API.

Articol

Pentru a solicita informații despre un articol de pe piață, trebuie să furnizăm API un ID de element. Puteți găsi ID-ul articolului în URL-ul elementului de pe piață.

Acum, când avem ID-ul nostru, să solicităm informațiile despre element:

 set_api_set ( 'produs: 147510'); // Setați setul API pentru a solicita ecou '
„; print_r ($ API-> cerere ()); echo "
„; ?>

Următoarele date trebuie returnate:

 Array ([item] => Array ([vânzări] => 16 [rating] => 5 [cost] => 25.00 [user] => Philo01 [uploaded_on] url] => https://codecanyon.net/item/wordpress-car-dealer/147510 [live_preview_url] => images_26_4 / cele mai recente actualizări-la-piață-api_3.jpg [ thumbnail] => http://s3.envato.com/files/1410780/Car_dealer_avatar.jpg [tags] => usor de folosit, usor de configurat, inventar auto, dealer auto, dealer, 2 glisante, post post nativ taxonomii, peste 35 de setări, lista tuturor autoturismelor, sistem de inventar [id] => 147510 [item] => Dealer de mașini WordPress))

Acum, să construim o pagină simplă care să afișeze informațiile de mai sus într-un mod pe care alți utilizatori îl vor înțelege. În primul rând, trebuie să alocăm datele API unei variabile:

 $ API = nou envatoAPI (); $ API-> set_api_set ( 'articol: 147510'); // Setați setul API pentru a solicita $ data = $ API-> request ();

Acum putem afișa date din API în următorul format: date $ [ 'element'] [ 'cheie'].

 set_api_set ( 'produs: 147510'); // Setați setul API pentru a solicita $ data = $ API-> request (); ?> 

„>

De , disponibile numai pentru !

HTML după PHP este analizat:

 

Dealer de mașini WordPress

De Philo01, disponibil doar pentru 25.00!

element-preturi

În loc să creați o nouă solicitare API pentru a afla mai multe despre prețul elementului și licența, putem să îl adăugăm doar în setul curent de API.

 $ API = nou envatoAPI (); $ API-> set_api_set ( 'articol: 147510 + element-prețurile: 147510'); // Setați setul API pentru a solicita $ data = $ API-> request ();

Răspunsul API este mai jos:

 [item-prices] => Array ([0] => Array ([licență] => Licență regulată [preț] => 25.00) [=] ))

Acum putem folosi informațiile returnate în pagina noastră de articole.

 

„>

De

Prețuri:

    ". $ p ['licență']. '- $'. $ p ['price']. '„; ?>

user-elemente-cu-site-

Pentru a termina acest lucru, vom adăuga numărul de articole pe care le are utilizatorul. Putem să-l adăugăm doar în setul API.

 $ API-> set_api_set ( 'element: 147510 + obiect-prețurile: 147510 + user-obiecte-cu-site-ul: Philo01');

Și răspunsul:

 ([site]] => ThemeForest [items] => 1) [1] => Array ([site] => CodeCanyon [items] = > 5))

Să adăugăm aceste informații la pagina noastră.

 

„>

De

Prețuri:

    ". $ p ['licență']. '- $'. $ p ['price']. '„; ?>

are mai multe elemente la Envato Marketplace

    ". $ p ['items']. "la". $ p ['site']. '„; ?>

Pasul 7 - Testarea noilor caracteristici ale API-ului privat

Pentru a utiliza funcțiile API private, veți avea nevoie de un cont de piață și de un cod de achiziție de la unul dintre clienții dvs. Mai întâi trebuie să definim aceste informații.

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

verifica-cumpărare

Aceasta va schimba automat adresa URL API din public în setul privat. Pentru a face lucrurile un pic mai dinamice, putem crea un mic formular în care utilizatorul poate introduce anumite informații pentru a-și verifica achiziția.

Notă: Când construiți propriul site web, nu utilizați stiluri inline ca acesta!

  

Verificați achiziția

Acest lucru ne oferă o formă de bază cum ar fi:

Acum să ajungem la partea PHP.

În primul rând, trebuie să verificăm dacă formularul a fost trimis împreună cu câmpurile necesare. Dacă utilizați acest lucru pe un site web live, nu uitați să adăugați mai multă validare pentru a face lucrurile mai sigure.

 dacă (isset ($ _ POST ['submit'])) // Alocați datele variabilelor $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['Purchase_code']; // Verificați dacă toate câmpurile sunt completate dacă (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) // Cerere API

Și acum cererea API.

 dacă (isset ($ _ POST ['submit'])) // Alocați datele variabilelor $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['Purchase_code']; // Verificați dacă toate câmpurile sunt completate dacă ($ empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verificare-cumpărare:'. $ Purchase_code); $ date = $ API-> cerere (); 

Un răspuns valid API va arăta astfel:

 Array ([verificare-cumpărare] => Array (licență) => Licență regulată [item_id] => 147510 [buyer] => EnvatoDemo [created_at] => Thu Dec 31 08:28:03 +1100 2009 [item_name] = > Dealer de mașini WordPress))

Dacă cererea este nevalidă, API va returna o matrice goală. Dacă obținem un răspuns de la API, înseamnă că codul de achiziție este corect. În scopul de ao face mai sigur, o vom potrivi cu id-ul și cu numele de utilizator introdus.

 dacă (isset ($ _ POST ['submit'])) // Alocați datele variabilelor $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['Purchase_code']; // Verificați dacă toate câmpurile sunt completate dacă ($ empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verificare-cumpărare:'. $ Purchase_code); $ date = $ API-> cerere (); dacă (! empty ($ data)) // Avem un răspuns API valabil să se potrivească cu ID-ul elementului și cu numele de utilizator dacă ($ date ['verify-purchase'] ['item_id'] == $ item_id && $ data [ 'verificare-cumpărare'] ['cumpărător'] == $ username) // Totul pare a fi corect! Achiziția a fost verificată! // Arată unele informații cum ar fi data achiziționării și licența ecou '

Ați achiziționat articolul pe ". $ date ['verificare-cumpărare'] ['created_at']. ' cu ' . $ data ['verificare-cumpărare'] ['licență']. '!

„; altfel // Răspunsul de la API a fost gol, eroarea de returnare a erorii a fost '

Ne pare rău, nu putem verifica achiziția.

„;

descărcare-cumpărare

Setul de descărcare-cumpărare vă permite să descărcați propriile achiziții fără să vizitați piața.

Notă: Achiziția de descărcare funcționează numai atunci când utilizați propria cheie API și un cod de achiziție al unui produs pe care l-ați cumpărat.

 

Descărcați articolul

Acum, dacă avem caseta de selectare, să facem câteva modificări în procesul de verificare.

Vom începe prin crearea unei noi variabile.

 // Alocați datele variabilelor $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['Purchase_code']; $ descărcare = (isset ($ _ POST ['download'])))? $ _POST ['descărcare']: ";

De asemenea, trebuie să facem câteva modificări în codul rămas:

 dacă (isset ($ _ POST ['submit'])) // Alocați datele variabilelor $ username = $ _POST ['username']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['Purchase_code']; $ descărcare = (isset ($ _ POST ['download'])))? $ _POST ['download']: "; // Verificați dacă toate câmpurile sunt completate dacă $ empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ('JohnDoe'); // Dacă descărcarea este bifată, solicitați setul de descărcare-cumpărare dacă ! Empty $ download) $ API-> set_api_set ('download-buy:' $ buy_code); $ data = $ API-> request (); // Setați locația antetului la adresa URL de descărcare furnizată de antetul API ("Location: ]; altceva // caseta de selectare a descărcării nu a fost bifată, deci verificați achiziția $ API-> set_api_set ('verificare-cumpărare:' $ purchase_code); $ data = $ API-> cerere () () empty ($ data)) // Avem un răspuns API valabil să se potrivească cu ID-ul elementului și cu numele de utilizator dacă ($ date ['verify-purchase'] ['item_id'] == $ item_id && $ date ['verifica-cumpărare'] ['cumpărător'] == $ username) // Totul pare a fi corect! Cumpărare verificată!

Ați achiziționat articolul pe ". $ date ['verificare-cumpărare'] ['created_at']. ' cu ' . $ data ['verificare-cumpărare'] ['licență']. '!

„; altfel // Răspunsul de la API a fost gol, eroarea de returnare a erorii a fost '

Ne pare rău, nu putem verifica achiziția.

„;

Odată cu aceste modificări, răspunsul ar trebui să arate astfel:

 Array ([descărcare-cumpărare] => Array ([download_url] => http: //download/ourfile.zip? AWSAccessKeyId = 12345 & Expires = 6789 & Signature = HAoYF962% 53faf))

Concluzie

Sper că ați învățat puțin despre interfața API a Envato. Dacă da, puneți aceste cunoștințe să folosească și să construiască câteva aplicații dulci! Vă mulțumim foarte mult pentru citire și spuneți-ne dacă aveți întrebări sau preocupări.

Cod