De Envato-marktplaatsen exploderen, met meer dan 600.000 leden en meer dan 65.000 bestanden!
Een geweldige aanvulling op de marktplaatsen is de API, die elke dag populairder wordt, dankzij de nieuwste updates! Onze geweldige marketplace-ontwikkelaars luisteren voortdurend naar feedback van de community en hebben een aantal leuke functies aan de edge-release toegevoegd!
Zorg ervoor dat u enkele van de beschikbare toepassingen op internet bekijkt - allemaal mogelijk gemaakt door de Envato-API.
Vandaag bekijken we de nieuwste API-functies! Ga met me mee na de sprong!
Een Application Programming Interface (API) is een specifieke set regels en specificaties die een softwareprogramma kan volgen om toegang te krijgen tot en gebruik te maken van de services en bronnen die door een ander specifiek softwareprogramma worden geboden. Het dient als een interface tussen verschillende softwareprogramma's en vergemakkelijkt hun interactie, vergelijkbaar met de manier waarop de gebruikersinterface interactie tussen mensen en computers mogelijk maakt.
Web-API's maken de combinatie van meerdere services in nieuwe applicaties mogelijk, ook wel mashups genoemd.
Wanneer gebruikt in de context van webontwikkeling, is een API typisch een gedefinieerde reeks Hypertext Transfer Protocol (HTTP) -verzoekberichten, samen met een definitie van de structuur van antwoordberichten, die meestal in een Extensible Markup Language (XML) of JavaScript is Objectnotatie (JSON) -indeling.
Hoewel 'Web API' vrijwel een synoniem is voor webservice, is de recente trend weggegaan van op SOAP gebaseerde services (Simple Object Access Protocol), in de richting van meer directe representatiestatusoverdracht (REST) -stijlcommunicatie. Web-API's maken de combinatie mogelijk van meerdere services in nieuwe applicaties die mashups worden genoemd.
De meeste ontwikkelaars zullen het antwoord op deze vraag weten, maar voor de anderen is het antwoord een doorslaand antwoord JA.
API's zijn overal te vinden; ze zijn vooral populair in de sociale netwerksector! De meeste grote netwerken, waaronder Twitter en Facebook, bieden API's voor interactie met hun service.
In deze zelfstudie gaan we alleen de nieuwe API-functies bekijken. Als u meer wilt weten over de bestaande API-functies, moet u de zelfstudie van Drew over het onderwerp bekijken.
item
- Details voor een enkel item, opgegeven door de opgegeven ID.post-prijzen
- Retourneer beschikbare licenties en prijzen voor de opgegeven item-ID.user-items per locatie
- Toon het aantal items dat een auteur te koop heeft op elke site. Vereist een gebruikersnaam, bijvoorbeeld Collis.verify-aankoop
- Details van een aankoop. Vereist een aankoopcode, bijvoorbeeld verify-aankoop: 550e8400-e29b-41d4-a716-446655440000.download-aankoop
- URL om aankoop te downloaden. Vereist een aankoopcode, bijvoorbeeld download-aankoop: 550e8400-e29b-41d4-a716-446655440000Om aan de slag te gaan met de API, hebt u een Envato Marketplace-account en een API-sleutel nodig.
U kunt uw API-sleutel ophalen door naar uw accountinstellingenpagina te gaan.
We zullen een PHP-functie gebruiken, genaamd json_decode
; Hierdoor kunnen we de API-gegevens ophalen en converteren naar een array. Deze functie is opgenomen in PHP 5> = 5.2.0.
Heb alles? Laten we beginnen!
Laten we beginnen met het bouwen van een eenvoudige PHP-klasse, waarmee we gegevens uit de API kunnen ophalen.
Maak een nieuwe projectmap en maak een andere map genaamd klassen
, om alles georganiseerd te houden. Voeg in deze map een nieuw PHP-bestand toe met de naam envato.api.class.php
Eerst bouwen we het basisskelet van onze klas:
We hebben binnen onze klas een aantal variabelen nodig om het flexibel te maken. Om erachter te komen welke variabelen we nodig hebben, moeten we de API-urlopmaak bekijken.
Openbaar
- http://marketplace.envato.com/api/edge/set.jsonPrivaat
- http://marketplace.envato.com/api/edge/username/api-key/set.jsonZoals u kunt zien, hebben we in totaal vier variabelen nodig:
Laten we deze privévariabelen zo maken:
class envatoAPI private $ api_url = 'http://marketplace.envato.com/api/edge/'; // Standaard URL privé $ api_set; // Hiermee wordt de gekozen API-set als privé-gebruikersnaam $ gebruiker-items-op-site bewaard; // De gebruikersnaam van de auteur had alleen nodig om toegang te krijgen tot de privésets private $ api_key; // De api-sleutel van de auteur had alleen toegang nodig tot de privésets
Ik gebruik graag setter- en gettermethoden bij het bouwen van klassen in PHP. Dus wat zijn precies deze methoden? Ik heb hieronder een klein voorbeeld gemaakt:
$ API = nieuwe envatoAPI (); $ API-> api_url = 'http://nettuts.com'; echo $ API-> api_url;
De bovenstaande code werkt niet en zou de volgende foutmelding moeten geven:
Fatale fout: Geen toegang tot privé-eigendom envatoAPI :: $ api_url
Omdat de variabele is ingesteld op privé, kunnen we deze niet openen of wijzigen. Als we de API-URL moeten wijzigen zonder het klassenbestand te bewerken, kunnen we iets doen in de trant van:
$ API = nieuwe envatoAPI (); $ API-> set_api_url ( 'http://nettuts.com'); echo $ API-> get_api_url ();
Schakel nu terug naar de PHP-klasse en voeg de functie toe, set_api_url
.
/ ** * set_api_url () * * Stel de API-URL in * * @access public * @param string * @return void * / public function set_api_url ($ url) $ this-> api_url = $ url;
Aangezien deze functie binnen onze klasse valt, kunnen we de private api_url-variabele openen en wijzigen. Nu hebben we in deze tutorial niet echt getters nodig, maar laten we er nog steeds een maken om je een beter begrip van het concept te geven..
/ ** * get_api_url () * * Retourneer de API-URL * * @access public * @return string * / public function get_api_url () return $ this-> api_url;
Zoals u op dit punt wellicht heeft afgeleid, hebben we bijvoorbeeld geen haalfunctie voor de API-sleutel nodig. Dit maakt onze klas veiliger.
We hebben al een setter voltooid, dus er zijn er nog drie en ze hebben allemaal dezelfde structuur.
/ ** * set_username () * * Stel de gebruikersnaam * * @ access public * @param string * @return void * / public function set_username ($ gebruikersnaam) $ this-> gebruikersnaam = $ gebruikersnaam;
/ ** * set_api_key () * * Stel de API-sleutel in * * @access public * @param string * @return void * / public function set_api_key ($ api_key) $ this-> api_key = $ api_key;
/ ** * set_api_set () * * Stel de API-set in * * @access public * @param string * @return void * / public function set_api_set ($ api_set) $ this-> api_set = $ api_set;
We kunnen nu alle variabelen als volgt instellen:
set_api_url (); - We hoeven de API-URL // $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s') niet te wijzigen; - We hoeven alleen de API-sleutel in te stellen om gegevens op te halen uit de persoonlijke set // $ API-> set_username ('JohnDoe'); // - We hoeven alleen de Envato Marketplace-gebruikersnaam in te stellen om gegevens op te halen uit de privéset $ API-> set_api_set ('popular: codecanyon'); // Stel de API-set in op aanvraag?>
Laten we een functie bouwen die de gegevens van de Envato Marketplace API zal opvragen. We beginnen met het creëren van een nieuwe openbare functie genaamd verzoek
.
/ ** * request () * * Gegevens aanvragen van de API * * @access public * @param void * @return array * / public function request ()
We kunnen dezelfde techniek gebruiken als in de vorige tutorial. Om de gegevens uit de API aan te vragen, kunnen we cURL gebruiken. Laten we beginnen met het bouwen van de API-URL - als de gebruikersnaam en API-sleutel zijn ingesteld, hebben we een andere URL nodig.
if (! empty ($ this-> username) &&! empty ($ this-> api_key)) // Build the private url $ this-> api_url. = $ this-> gebruikersnaam. '/'.$this->api_key.'/'.$this->api_set. '.Json'; // Voorbeeld: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json else // Bouw de openbare URL $ this-> api_url. = $ This-> api_set. '.Json'; // Voorbeeld: http://marketplace.envato.com/api/edge/popular:codecanyon.json
We sturen een verzoek naar de API met behulp van cURL zoals zo:
$ ch = curl_init ($ this-> api_url); // Initialiseer een cURL-sessie en stel de API-URL in curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Het aantal seconden dat moet worden gewacht bij het verbinden van curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Retourneer de overdracht als een tekenreeks in plaats van deze rechtstreeks uit te voeren. $ ch_data = curl_exec ($ ch); // Voer een cURL-sessie curl_close ($ ch) uit; // Sluit een cURL-sessie
We hebben nu een variabele, genaamd $ ch_data
welke een JSON-geformatteerde string bevat. Voordat we hier iets mee kunnen doen, moeten we het in een array decoderen.
// Controleer of de variabele gegevens bevat als (! Empty ($ ch_data)) return json_decode ($ ch_data, true); // Decodeer de gevraagde gegevens in een array else return ('We kunnen geen informatie ophalen uit de API.'); // Foutbericht retourneren
De functie in zijn geheel ziet er als volgt uit:
openbare functie-aanvraag () if (! empty ($ this-> gebruikersnaam) &&! empty ($ this-> api_key)) // Bouw de privé-URL $ this-> api_url. = $ this-> gebruikersnaam. '/'.$this->api_key.'/'.$this->api_set. '.Json'; else // Bouw de openbare url $ this-> api_url. = $ this-> api_set. '.Json'; $ ch = curl_init ($ this-> api_url); // Initialiseer een cURL-sessie en stel de API-URL in curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Het aantal seconden dat moet worden gewacht bij het verbinden van curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Retourneer de overdracht als een tekenreeks in plaats van deze rechtstreeks uit te voeren. $ ch_data = curl_exec ($ ch); // Voer een cURL-sessie curl_close ($ ch) uit; // Sluit een cURL-sessie // Controleer of de variabele gegevens bevat als (! Empty ($ ch_data)) json_decode retourneren ($ ch_data, true); // Decodeer de gevraagde gegevens in een array else return ('We kunnen geen informatie ophalen uit de API.'); // Foutbericht retourneren
Laten we onze klas uitproberen en enkele gegevens van de API opvragen:
set_api_url (); // $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); // $ API-> set_username ( 'JohnDoe'); // Envato gebruikersnaam $ API-> set_api_set ('popular: codecanyon'); // Stel de API-set in op verzoek echo ''; print_r ($ API-> request ()); echo ''; ?>
Nu onze klasse werkt, is het tijd om enkele voorbeelden te bouwen met de nieuwe API-functies.
Om informatie over een marktplaatsartikel op te vragen, moeten we de API voorzien van een artikel-ID. U vindt de artikel-ID binnen de URL van het item op de marktplaats.
Nu we onze ID hebben, laten we de artikelinformatie opvragen:
set_api_set ( 'artikel: 147510'); // Stel de API-set in op verzoek echo ''; print_r ($ API-> request ()); echo ''; ?>
De volgende gegevens moeten worden geretourneerd:
Array ([item] => Array ([sales] => 16 [rating] => 5 [cost] => 25.00 [user] => Philo01 [uploaded_on] => Tue 21 december 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 [tags] => gemakkelijk te gebruiken, eenvoudig in te stellen, auto-inventaris, autohandelaar, dealer, 2 ingebouwde schuifregelaars, native post type & taxonomieën, meer dan 35 instellingen, lijst al uw auto's, inventarisatiesysteem [id] => 147510 [item] => WordPress autodealer))
Laten we nu een eenvoudige pagina maken waarin de bovenstaande informatie wordt weergegeven op een manier die andere gebruikers begrijpen. Eerst moeten we de API-gegevens toewijzen aan een variabele:
$ API = nieuwe envatoAPI (); $ API-> set_api_set ( 'artikel: 147510'); // Stel de API-set in op $ data = $ API-> request ();
We kunnen nu gegevens uit de API weergeven in de volgende indeling: $ Data [ 'post'] [ 'key']
.
set_api_set ( 'artikel: 147510'); // Stel de API-set in op $ data = $ API-> request (); ?>">
Door , alleen beschikbaar voor !
De HTML na de PHP wordt geparseerd:
WordPress Car Dealer
Door Philo01, beschikbaar voor slechts 25,00!
In plaats van een nieuw API-verzoek te maken om meer te weten te komen over de artikelprijs en licentie, kunnen we het eenvoudig toevoegen aan de huidige API-set.
$ API = nieuwe envatoAPI (); $ API-> set_api_set ( 'artikel: 147510 + post-prijzen: 147510'); // Stel de API-set in op $ data = $ API-> request ();
Het antwoord van de API is hieronder:
[artikelprijzen] => Array ([0] => Array ([licentie] => Gewone licentie [prijs] => 25.00) [1] => Array ([licentie] => Uitgebreide licentie [prijs] => 175.00 ))
Nu kunnen we deze geretourneerde informatie gebruiken op onze itempagina.
">
Door
Prijzen:
Om het af te maken, gaan we het aantal items toevoegen dat de gebruiker heeft. We kunnen het eenvoudig toevoegen aan de API-set.
$ API-> set_api_set ( 'artikel: 147510 + post-prijzen: 147.510 + user-items per locatie: Philo01');
En het antwoord:
[user-items-by-site] => Array ([0] => Array ([site] => ThemeForest [items] => 1) [1] => Array ([site] => CodeCanyon [items] = > 5))
Laten we deze informatie toevoegen aan onze pagina.
">
Door
Prijzen:
heeft meer items op de Envato Marketplace
Om de private API-functies te gebruiken, hebt u een marktplaatsaccount en een aankoopcode van een van uw klanten nodig. We moeten eerst deze informatie definiëren.
$ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe');
Hierdoor wordt de API-URL automatisch gewijzigd van openbaar naar privé. Om de dingen een beetje dynamischer te maken, kunnen we een klein formulier maken waarin de gebruiker bepaalde informatie kan invoeren om zijn aankoop te verifiëren.
Notitie: Gebruik bij het bouwen van uw eigen website geen inline stijlen zoals deze!
Controleer aankoop
Dit geeft ons een basisvorm zoals zo:
Laten we nu naar het PHP-gedeelte gaan.
Eerst moeten we controleren of het formulier is ingediend met de vereiste velden ingevuld. Als u dit op een live website gebruikt, vergeet dan niet om meer validatie toe te voegen om dingen veiliger te maken.
if (isset ($ _ POST ['submit'])) // Gegevens toewijzen aan variabelen $ gebruikersnaam = $ _POST ['gebruikersnaam']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; // Controleer of alle velden zijn ingevuld als (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) // API Request
En nu het API-verzoek.
if (isset ($ _ POST ['submit'])) // Gegevens toewijzen aan variabelen $ gebruikersnaam = $ _POST ['gebruikersnaam']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; // Controleer of alle velden zijn ingevuld als (! Empty ($ gebruikersnaam) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = nieuwe envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verify-purchase:'. $ Purchase_code); $ data = $ API-> request ();
Een geldig API-antwoord ziet er als volgt uit:
Array ([verify-purchase] => Array ([license] => Reguliere licentie [item_id] => 147510 [buyer] => EnvatoDemo [created_at] => don 31 december 08:28:03 +1100 2009 [item_name] = > Autodealer van WordPress))
Als het verzoek ongeldig is, retourneert de API een lege array. Als we een reactie van de API ontvangen, betekent dit dat de aankoopcode correct is. Om het veiliger te maken, matchen we het met het ingevoerde item-ID en de gebruikersnaam.
if (isset ($ _ POST ['submit'])) // Gegevens toewijzen aan variabelen $ gebruikersnaam = $ _POST ['gebruikersnaam']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; // Controleer of alle velden zijn ingevuld als (! Empty ($ gebruikersnaam) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = nieuwe envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verify-purchase:'. $ Purchase_code); $ data = $ API-> request (); if (! empty ($ data)) // We hebben een geldig API-antwoord, laten we het item-ID en de gebruikersnaam matchen ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data [ 'verify-purchase'] ['buyer'] == $ gebruikersnaam) // Alles lijkt correct te zijn! Aankoop geverifieerd! // Toon info zoals aankoopdatum en licentie-echo 'U hebt het artikel gekocht op '. $ data ['verify-purchase'] ['created_at']. ' met de ' . $ data ['verify-purchase'] ['license']. '!
'; else // Reactie van de API was leeg, return error echo 'Sorry, we kunnen uw aankoop niet verifiëren.
';
Met de set voor downloaden en kopen kunt u uw eigen aankopen downloaden zonder de marktplaats te bezoeken.
Opmerking: de downloadaankoop werkt alleen als u uw eigen API-sleutel gebruikt en een aankoopcode van een product dat u hebt gekocht.
Nu we ons selectievakje hebben ingeschakeld, laten we enkele wijzigingen aanbrengen in het verificatieproces.
We beginnen met het maken van een nieuwe variabele.
// Data toewijzen aan variabelen $ gebruikersnaam = $ _POST ['gebruikersnaam']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; $ download = (isset ($ _ POST ['download']))? $ _POST ['download']: ";
We moeten ook een aantal wijzigingen aanbrengen in de resterende code:
if (isset ($ _ POST ['submit'])) // Gegevens toewijzen aan variabelen $ gebruikersnaam = $ _POST ['gebruikersnaam']; $ item_id = $ _POST ['item_id']; $ purchase_code = $ _POST ['purchase_code']; $ download = (isset ($ _ POST ['download']))? $ _POST ['download']: "; // Controleer of alle velden zijn ingevuld als (! Empty ($ username) &&! Empty ($ item_id) &&! Empty ($ purchase_code)) $ API = new envatoAPI () ; $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ('JohnDoe'); // Als downloaden is aangevinkt, wordt de download-aankoop ingesteld als (! Empty ($ download)) $ API-> set_api_set ('download-aankoop:'. $ purchase_code); $ data = $ API-> request (); // Stel de headerlocatie in op de download-URL die wordt geleverd door de API-header ("Location:". $ data ['download- aankoop '] [' download_url ']); else // Het selectievakje voor downloaden is niet aangevinkt, dus verifieer de aankoop $ API-> set_api_set (' verify-purchase: '. $ purchase_code); $ data = $ API-> request (); if (! empty ($ data)) // We hebben een geldig API-antwoord, laten we het item-ID en de gebruikersnaam matchen ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data ['verify-purchase'] ['buyer'] == $ gebruikersnaam) // Alles lijkt correct te zijn! Aankoop geverifieerd! // Toon enkele info zoals aankoopdatum en licentie-echo 'U hebt het artikel gekocht op '. $ data ['verify-purchase'] ['created_at']. ' met de ' . $ data ['verify-purchase'] ['license']. '!
'; else // Reactie van de API was leeg, return error echo 'Sorry, we kunnen uw aankoop niet verifiëren.
';
Met die veranderingen moet de reactie er als volgt uitzien:
Array ([download-aankoop] => Array ([download_url] => http: //download/ourfile.zip? AWSAccessKeyId = 12345 & Expires = 6789 & Signature = HAoYF962% 53faf))
Ik hoop dat je een beetje hebt geleerd over Envato's Marketplace API. Als dat zo is, gebruik dan deze kennis om enkele leuke applicaties te bouwen en te bouwen! Heel erg bedankt voor het lezen en laat het ons weten als u vragen of opmerkingen heeft.