Envato marknadsplatser exploderar, med mer än 600k medlemmar och över 65k filer!
Ett bra komplement till marknadsplatserna är API, som blir allt populärare varje dag tack vare de senaste uppdateringarna! Våra fantastiska marknadsplatser devs lyssnar hela tiden på community feedback, och har lagt till några söta funktioner till kantutgåvan!
Var noga med att kolla in några av de program som finns tillgängliga på webben - alla drivna av Envato API.
Idag tar vi en titt på de senaste API-funktionerna! Gå med mig efter hoppet!
Ett programprogrammeringsgränssnitt (API) är en särskild uppsättning regler och specifikationer som ett program kan följa för att få tillgång till och utnyttja de tjänster och resurser som tillhandahålls av ett annat särskilt program. Det fungerar som ett gränssnitt mellan olika program och underlättar deras interaktion, på samma sätt som användargränssnittet underlättar interaktion mellan människor och datorer.
Web API: er tillåter kombinationen av flera tjänster till nya applikationer, kända som mashups.
När det används i samband med webbutveckling är ett API typiskt en definierad uppsättning HTTP-förfrågningsmeddelanden (Hypertext Transfer Protocol) tillsammans med en definition av strukturen för svarmeddelanden, som vanligtvis finns i ett Extensible Markup Language (XML) eller JavaScript Objektnotation (JSON) format.
Medan "Web API" är nästan en synonym för webbtjänster har den senaste trenden flyttat sig från enkla objektåtkomstprotokoll (SOAP) -baserade tjänster, mot mer direkt Representative State Transfer (REST) -stylkommunikation. Web API: er tillåter kombinationen av flera tjänster till nya applikationer som kallas mashups.
De flesta utvecklare kommer att få svaret på den här frågan, men för de andra är svaret en rungande JA.
API: er finns överallt; De är särskilt populära i den sociala nätverkssektorn! De flesta stora nätverk, inklusive Twitter och Facebook, ger API-apparater möjlighet att interagera med sin tjänst.
I den här handledningen kommer vi bara att titta på de nya API-funktionerna. Om du vill lära dig mer om de befintliga API-funktionerna, se till att du kolla in Drews handledning om ämnet.
Artikel
- Detaljer för ett enda objekt, specificerat av det angivna ID.artikel priser
- Returnera tillgängliga licenser och priser för det angivna artikel-ID.användar objekt-för-site
- Visa antalet artiklar som en författare har till försäljning på varje sida. Kräver ett användarnamn, t.ex. Collis.verify-köp
- Detaljer om ett köp. Kräver en köpkod, t.ex. verify-köp: 550e8400-e29b-41d4-a716-446655440000.download-köp
- URL för att ladda ner köp. Kräver en köpkod, t.ex. download-köp: 550e8400-e29b-41d4-a716-446655440000För att komma igång med API: n behöver du ett Envato Marketplace-konto och en API-nyckel.
Du kan hämta din API-nyckel genom att besöka sidan för kontoinställningar.
Vi använder en PHP-funktion, kallad json_decode
; Det här låter oss hämta API-data och konvertera det till en array. Denna funktion ingår i PHP 5> = 5.2.0.
Har du allt? Låt oss börja!
Låt oss börja med att bygga en enkel PHP-klass, vilket gör att vi kan hämta data från API: n.
Skapa en ny projektmapp och skapa en annan katalog som heter klasser
, för att hålla allt organiserat. Inne i den här mappen lägger du till en ny PHP-fil som heter envato.api.class.php
Först ska vi konstruera grundskelettet i vår klass:
Vi behöver ett par variabler i vår klass för att göra det flexibelt. För att ta reda på vilka variabler vi behöver måste vi titta på API-urlformatering.
offentlig
- http://marketplace.envato.com/api/edge/set.jsonPrivat
- http://marketplace.envato.com/api/edge/username/api-key/set.jsonSom ni kan se behöver vi totalt fyra variabler:
Låt oss skapa dessa privata variabler som så:
klass envatoAPI privat $ api_url = 'http://marketplace.envato.com/api/edge/'; // Default URL privat $ api_set; // Det här håller den valda API-uppsättningen som "User-items-by-site" privat $ användarnamn; // Författarens användarnamn behövdes endast för att komma åt privata uppsättningar privata $ api_key; // Författarens api-nyckel behövdes endast för att komma åt privata uppsättningar
Jag gillar att använda setter och getter metoder när du bygger klasser i PHP. Så vad exakt är dessa metoder? Jag har gjort ett litet exempel nedan:
$ API = ny envatoAPI (); $ API-> api_url = 'http://nettuts.com'; echo $ API-> api_url;
Koden ovan fungerar inte och bör returnera följande fel:
Felaktigt fel: Kan inte komma åt privat egendom envatoAPI :: $ api_url
Eftersom variabeln är inställd på privat, kan vi inte komma åt eller ändra den. Om vi behöver ändra API-url utan att redigera klassfilen kan vi göra något enligt följande:
$ API = ny envatoAPI (); $ API-> set_api_url (http://nettuts.com '); echo $ API-> get_api_url ();
Byt nu tillbaka till PHP-klassen och lägg till funktionen, set_api_url
.
/ ** * set_api_url () * * Ange API-URL * * @access public * @param-strängen * @return void * / public function set_api_url ($ url) $ this-> api_url = $ url;
Eftersom denna funktion ligger inom vår klass kan vi komma åt och ändra den privata api_url-variabeln. Nu i denna handledning behöver vi inte riktigt getters, men låt oss skapa en för att ge dig en bättre förståelse av konceptet.
/ ** * get_api_url () * * Återvänd API-adressen * * @access public * @returnsträngen * / public function get_api_url () return $ this-> api_url;
Som du kanske har utgått vid denna punkt behöver vi inte en get-funktion för API-nyckeln till exempel. Det gör vår klass säkrare.
Vi har redan gjort en setter, så det finns tre kvar och alla har samma struktur.
/ ** * set_username () * * Ange användarnamnet * * @access public * @param-strängen * @return void * / public function set_username ($ användarnamn) $ this-> användarnamn = $ användarnamn;
/ ** * set_api_key () * * Ange API-nyckeln * * @access public * @param-strängen * @return void * / allmän funktion set_api_key ($ api_key) $ this-> api_key = $ api_key;
/ ** * set_api_set () * * Ange API-uppsättningen * * @access public * @param-strängen * @return void * / public function set_api_set ($ api_set) $ this-> api_set = $ api_set;
Vi kan nu ställa in alla variabler som så:
set_api_url (); - Vi behöver inte ändra API URL // $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); - Vi behöver bara ange API-nyckeln för att hämta data från den privata uppsättningen // $ API-> set_username ('JohnDoe'); // - Vi behöver bara ange Envato Marketplace användarnamn för att hämta data från den privata uppsättningen $ API-> set_api_set ('popular: codecanyon'); // Ställ in API-inställningen för att begära?>
Låt oss bygga en funktion som kommer att begära data från Envato Marketplace API. Vi börjar med att skapa en ny offentlig funktion som heter begäran
.
/ ** * begäran () * * Begär data från API * * @access public * @param void * @return array * / public function request ()
Vi kan använda samma teknik som används i den tidigare handledningen. För att begära data från API kan vi använda cURL. Låt oss börja med att bygga API-webbadressen - om användarnamnet och API-nyckeln är inställda behöver vi en annan webbadress.
om (! tomt ($ this-> användarnamn) &&! tomt ($ this-> api_key)) // Bygg den privata url $ this-> api_url. = $ this-> användarnamnet. '/'.$this->api_key.'/'.$this->api_set. '.Json'; // Prov: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json else // Bygg den offentliga url $ this-> api_url. = $ This-> api_set. '.Json'; // Prov: http://marketplace.envato.com/api/edge/popular:codecanyon.json
Vi skickar en begäran till API: n genom att använda cURL så här:
$ ch = curl_init ($ this-> api_url); // Initiera en cURL-session och ange API-URL curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Antalet sekunder att vänta medan du försöker ansluta curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Återför överföringen som en sträng istället för att mata ut den direkt. $ ch_data = curl_exec ($ ch); // Utför en cURL-session curl_close ($ ch); // Stäng en cURL-session
Vi har nu en variabel, kallad $ ch_data
som innehåller en JSON formaterad sträng. Innan vi kan göra något med detta måste vi avkoda det till en matris.
// Kontrollera om variabeln innehåller data om (! Tomt ($ ch_data)) returnera json_decode ($ ch_data, true); // Avkod de begärda uppgifterna i en array else return ('Vi kan inte hämta någon information från API: n.'); // Retur felmeddelande
Funktionen i sin helhet ser ut så här:
public function request () if (! tomt ($ this-> användarnamn) &&! tomt ($ this-> api_key)) // Bygg den privata url $ this-> api_url. = $ this-> användarnamnet. '/'.$this->api_key.'/'.$this->api_set. '.Json'; else // Bygg den offentliga url $ this-> api_url. = $ this-> api_set. '.Json'; $ ch = curl_init ($ this-> api_url); // Initiera en cURL-session och ange API-URL curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Antalet sekunder att vänta medan du försöker ansluta curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Återför överföringen som en sträng istället för att mata ut den direkt. $ ch_data = curl_exec ($ ch); // Utför en cURL-session curl_close ($ ch); // Stäng en cURL session // Kontrollera om variabeln innehåller data om (! Tomt ($ ch_data)) returnera json_decode ($ ch_data, true); // Avkod de begärda uppgifterna i en array else return ('Vi kan inte hämta någon information från API: n.'); // Retur felmeddelande
Låt oss försöka vår klass och begära några data från API:
set_api_url (); // $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); // $ API-> set_username (JohnDoe '); // Envato användarnamn $ API-> set_api_set ('popular: codecanyon'); // Ställ in API-inställningen för att begära eko'; print_r ($ API-> förfrågan ()); eko "'; ?>
Nu när vår klass arbetar, är det dags att bygga några exempel med de nya API-funktionerna.
För att begära information om ett marknadsplatsobjekt måste vi tillhandahålla API med ett artikel-ID. Du kan hitta artikel-ID inom URL-adressen till marknadsplatsen.
Nu när vi har vårt ID, låt oss begära artikelinformationen:
set_api_set ( 'item: 147.510'); // Ställ in API-inställningen för att begära eko'; print_r ($ API-> förfrågan ()); eko "'; ?>
Följande uppgifter ska returneras:
Array ([item] => Array ([försäljning] => 16 [betyg] => 5 [kostnad] => 25,00 [användare] => Philo01 [uploaded_on] => tis 21 dec 03:13:24 +1100 2010 [ url] => https://codecanyon.net/item/wordpress-car-dealer/147510 [live_preview_url] => images_26_4 / how-to-use-the-senaste-uppdateringar-till-marknaden-api_3.jpg [ thumbnail] => http://s3.envato.com/files/1410780/Car_dealer_avatar.jpg [tags] => lätt att använda, lätt att installera, bilinventarier, bilhandlare, återförsäljare, 2 inbyggda reglage, inbyggd posttyp & taxonomier, över 35 inställningar, lista alla dina bilar, inventeringssystem [id] => 147510 [item] => WordPress Bilhandlare))
Låt oss nu bygga en enkel sida som visar informationen ovan på ett sätt som andra användare förstår. Först måste vi tilldela API-data till en variabel:
$ API = ny envatoAPI (); $ API-> set_api_set (punkt: 147.510 '); // Ställ in API-inställningen för att begära $ data = $ API-> request ();
Vi kan nu visa data från API: n i följande format: $ uppgifter [ 'objekt'] [ 'key']
.
set_api_set ( 'item: 147.510'); // Ställ in API-inställningen för att begära $ data = $ API-> request (); ?>">
Av , tillgänglig för endast !
HTML efter PHP analyseras:
WordPress Bilhandlare
Av Philo01, tillgänglig för endast 25.00!
Istället för att skapa en ny API-förfrågan om du vill veta mer om pris och licens för varan, kan vi helt enkelt lägga till den i den aktuella API-uppsättningen.
$ API = ny envatoAPI (); $ API-> set_api_set (punkt: 147510 + artikel priser: 147510 '); // Ställ in API-inställningen för att begära $ data = $ API-> request ();
API: s svar är nedan:
[item-prices] => Array ([0] => Array ([licens] => Vanlig licens [pris] => 25.00) [1] => Array ([licens] => Utökad licens [pris] => 175,00 ))
Nu kan vi använda denna returnerade information på vår produktsida.
">
Av
Prissättning:
För att avsluta det kommer vi att lägga till antalet poster som användaren har. Vi kan helt enkelt lägga till det i API-uppsättningen.
$ API-> set_api_set (punkt: 147.510 + artikel priser: 147510 + användar objekt-för-site: Philo01 ');
Och svaret:
[User-items-by-site] => Array ([0] => Array ([site] => ThemeForest [objekt] => 1) [1] => Array ([site] => CodeCanyon [items] = > 5))
Låt oss lägga till den här informationen på vår sida.
">
Av
Prissättning:
har fler föremål på Envato Marketplace
För att använda de privata API-funktionerna behöver du ett marknadsplats konto och en inköpskod från en av dina kunder. Vi behöver först definiera denna information.
$ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username (JohnDoe ');
Detta ändrar automatiskt API-webbadressen från allmänheten till den privata uppsättningen. För att göra sakerna lite mer dynamiska kan vi skapa en liten form där användaren kan skriva in någon information för att verifiera sitt köp.
Notera: När du bygger din egen hemsida, använd inte inline-stilar så här!
Bekräfta inköp
Detta ger oss en grundläggande form som så:
Låt oss nu komma till PHP-delen.
Först måste vi kontrollera om formuläret har lämnats in med erforderliga fält fyllda. Om du använder det här på en levande webbplats, kom ihåg att lägga till mer validering för att göra saker säkrare.
om (isset ($ _ POST ['submit'])) // Tilldela data till variabler $ användarnamn = $ _POST ['användarnamn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; // Kontrollera om alla fält är fyllda om (! Tomt ($ användarnamn) &&! Tomt ($ item_id) &&! Tomt ($ purchase_code)) // API-förfrågan
Och nu API-förfrågan.
om (isset ($ _ POST ['submit'])) // Tilldela data till variabler $ användarnamn = $ _POST ['användarnamn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; // Kontrollera om alla fält är fyllda om (! Tomt ($ användarnamn) &&! Tomt ($ item_id) &&! Tomt ($ purchase_code)) $ API = nytt envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username (JohnDoe '); $ API-> set_api_set ('verify-purchase:'. $ Buy_code); $ data = $ API-> förfrågan ();
Ett giltigt API-svar kommer att se ut så här:
Array ([check-purchase] => Array ([licens] => Vanlig licens [item_id] => 147510 [buyer] => EnvatoDemo [created_at] => Thu Dec 31 08:28:03 +1100 2009 [item_name] = > WordPress Bilhandlare))
Om förfrågan är ogiltig returnerar API en tom matris. Om vi får ett svar från API: n, betyder det att köpkoden är korrekt. För att göra det säkrare, matchar vi det med det angivna artikel-id och användarnamn.
om (isset ($ _ POST ['submit'])) // Tilldela data till variabler $ användarnamn = $ _POST ['användarnamn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; // Kontrollera om alla fält är fyllda om (! Tomt ($ användarnamn) &&! Tomt ($ item_id) &&! Tomt ($ purchase_code)) $ API = nytt envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username (JohnDoe '); $ API-> set_api_set ('verify-purchase:'. $ Buy_code); $ data = $ API-> förfrågan (); om ! tom ($ data)) // Vi har ett giltigt API-svar låt oss matcha artikel-id och användarnamn om ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data [ 'check-purchase'] ['buyer'] == $ användarnamn) // Allt verkar vara korrekt! Köp verifierad! // Visa lite info som inköpsdatum och licens echo "Du har köpt objektet på '. $ data ['verify-purchase'] ['created_at']. ' med ' . $ data ['verifiera köp'] ['licens']. '!
'; else // Svar från API: n var tomt, returnera fel echo 'Tyvärr kan vi inte verifiera ditt köp.
';
Nedladdningsköpsuppsättningen gör att du kan ladda ner dina egna inköp utan att besöka marknaden.
Obs! Nedladdningsköpet fungerar bara när du använder din egen API-nyckel och en inköpskod för en produkt som du har köpt.
Nu när vi har kryssrutan, låt oss göra vissa ändringar i verifieringsprocessen.
Vi börjar med att skapa en ny variabel.
// Tilldela data till variabler $ användarnamn = $ _POST ['användarnamn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; $ download = (isset ($ _ POST ['download'])))? $ _POST ['download']: ";
Vi behöver också göra några ändringar i den återstående koden:
om (isset ($ _ POST ['submit'])) // Tilldela data till variabler $ användarnamn = $ _POST ['användarnamn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; $ download = (isset ($ _ POST ['download'])))? $ _POST ['download']: "; // Kontrollera om alla fält är fyllda om (! Tomt ($ användarnamn) &&! Tomt ($ item_id) &&! Tomt ($ purchase_code)) $ API = nytt envatoAPI $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ('JohnDoe'); // Om nedladdningen är markerad begär nedladdningsuppsättningen om (! Tom ($ download)) $ API-> set_api_set ("download-purchase:". $ buy_code); $ data = $ API-> förfrågan (); // Ange huvudadressen till nedladdningsadressen som tillhandahålls av API-huvudet ("Plats:". $ data [ köp '] [' download_url ']); else // Nedladdningsrutan var inte markerad så verifiera köp $ API-> set_api_set (' verify-purchase: '. $ buy_code); $ data = $ API-> förfrågan (), om (! tomt ($ data)) // Vi har ett giltigt API-svar låt oss matcha artikel-id och användarnamn om ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data ['verifiera köp'] ['köpare'] == $ användarnamn) // Allt verkar vara korrekt! Köp verifierat! // Visa lite info som inköpsdatum och licens echo 'Du har köpt objektet på '. $ data ['verify-purchase'] ['created_at']. ' med ' . $ data ['verifiera köp'] ['licens']. '!
'; else // Svar från API: n var tomt, returnera fel echo 'Tyvärr kan vi inte verifiera ditt köp.
';
Med dessa förändringar på plats bör svaret se ut så här:
Array ([download-purchase] => Array ([download_url] => http: //download/ourfile.zip? AWSAccessKeyId = 12345 & Expires = 6789 & Signatur = HAoYF962% 53faf))
Jag hoppas att du har lärt dig lite om Envato's API på marknaden. Om så är fallet, använd den här kunskapen för att använda och bygga några söta applikationer! Tack så mycket för att läsa och meddela om du har några frågor eller problem.