Envato-markedsplassene eksploderer, med over 600k medlemmer og over 65k filer!
Et godt tillegg til markedsplassene er API, som blir stadig mer populært hver dag, takket være de nyeste oppdateringene! Vår fantastiske markedsplass devs lytter kontinuerlig til fellesskap tilbakemelding, og har lagt til noen søte funksjoner til kantutgivelsen!
Pass på å sjekke ut noen av programmene som er tilgjengelige på Internett - alt drevet av Envato API.
I dag tar vi en titt på de nyeste API-funksjonene! Bli med meg etter hoppet!
Et programprogrammeringsgrensesnitt (API) er et bestemt sett med regler og spesifikasjoner som et program kan følge for å få tilgang til og benytte seg av de tjenester og ressurser som tilbys av et annet bestemt program. Det tjener som et grensesnitt mellom ulike programmer og letter samspillet, ligner måten brukergrensesnittet forenkler samspillet mellom mennesker og datamaskiner.
Web APIer tillater kombinasjonen av flere tjenester til nye applikasjoner, kjent som mashups.
Når det brukes i sammenheng med webutvikling, er en API vanligvis et definert sett med HTTP-forespørsler (Hypertext Transfer Protocol), sammen med en definisjon av strukturen til svarmeldinger, som vanligvis finnes i et Extensible Markup Language (XML) eller JavaScript Objektnotasjon (JSON) format.
Mens "Web-API" er praktisk talt et synonym for webtjenesten, har den siste trenden flyttet seg fra enkle tilgangsprotokoll (SOAP) -baserte tjenester, mot mer direkte representativ state transfer (REST) stilkommunikasjon. Web APIer tillater kombinasjonen av flere tjenester til nye applikasjoner kjent som mashups.
De fleste utviklere vil vite svaret på dette spørsmålet, men for de andre er svaret en rungende JA.
API-er finnes overalt; de er spesielt populært i den sosiale nettverkssektoren! De fleste store nettverk, inkludert Twitter og Facebook, gir APIer til å kommunisere med deres tjeneste.
I denne opplæringen skal vi bare se på de nye API-funksjonene. Hvis du vil lære mer om de eksisterende API-funksjonene, må du sjekke ut Drews veiledning om emnet.
punkt
- Detaljer for et enkelt element, spesifisert av den oppgitte ID.element-priser
- Returner tilgjengelige lisenser og priser for den oppgitte varen ID.bruker-items-by-side
- Vis antall varer en forfatter har til salgs på hvert nettsted. Krever et brukernavn, f.eks. collis.verify-kjøp
- Detaljer om et kjøp. Krever en kjøpskode, f.eks. verify-kjøpet: 550e8400-e29b-41d4-a716-446655440000.download-kjøp
- URL for å laste ned kjøp. Krever en kjøpskode, f.eks. download-kjøpet: 550e8400-e29b-41d4-a716-446655440000For å komme i gang med API-en, trenger du en Envato Marketplace-konto og en API-nøkkel.
Du kan hente API-nøkkelen din ved å gå til siden for kontoinnstillinger.
Vi bruker en PHP-funksjon, kalt json_decode
; Dette tillater oss å hente API-dataene og konvertere det til en matrise. Denne funksjonen er inkludert i PHP 5> = 5.2.0.
Fikk alt? La oss komme i gang!
La oss begynne med å bygge en enkel PHP-klasse, som gjør at vi kan hente data fra API-en.
Opprett en ny prosjektmappe og opprett en annen katalog som heter klasser
, å holde alt organisert. I denne mappen legger du til en ny PHP-fil som heter envato.api.class.php
Først skal vi konstruere grunnleggende skjelett av vår klasse:
Vi trenger et par variabler i vår klasse for å gjøre det fleksibelt. For å finne ut hvilke variabler vi trenger, må vi se på API-URL-formatering.
Offentlig
- http://marketplace.envato.com/api/edge/set.jsonPrivat
- http://marketplace.envato.com/api/edge/username/api-key/set.jsonSom du kan se, trenger vi totalt fire variabler:
La oss lage disse private variablene slik:
klasse envatoAPI private $ api_url = 'http://marketplace.envato.com/api/edge/'; // Standard URL privat $ api_set; // Dette vil holde det valgte API-settet som "user-items-by-site" privat $ brukernavn; // Brukernavnet til forfatteren behøvde bare å få tilgang til private settene private $ api_key; // Api-nøkkelen til forfatteren behøvde bare å få tilgang til private settene
Jeg liker å bruke setter og getter metoder når du bygger klasser i PHP. Så hva er disse metodene? Jeg har laget et lite eksempel nedenfor:
$ API = ny envatoAPI (); $ API-> api_url = 'http://nettuts.com'; ekko $ API-> api_url;
Koden ovenfor virker ikke og bør returnere følgende feil:
Fatal feil: Kan ikke få tilgang til privat eiendom envatoAPI :: $ api_url
Fordi variabelen er satt til privat, kan vi ikke få tilgang til eller endre den. Hvis vi trenger å endre API-url uten å redigere klassefilen, kan vi gjøre noe i tråd med:
$ API = ny envatoAPI (); $ API-> set_api_url ( 'http://nettuts.com'); ekko $ API-> get_api_url ();
Bytt nå tilbake til PHP-klassen og legg til funksjonen, set_api_url
.
/ ** * set_api_url () * * Angi API URL * * @access offentlig * @param streng * @return void * / offentlig funksjon set_api_url ($ url) $ this-> api_url = $ url;
Siden denne funksjonen er innenfor vår klasse, kan vi få tilgang til og endre den private api_url-variabelen. Nå i denne opplæringen trenger vi ikke virkelig getters, men la oss fortsatt lage en for å gi deg en bedre forståelse av konseptet.
/ ** * get_api_url () * * Returner API-URLen * * @access public * @return string * / offentlig funksjon get_api_url () return $ this-> api_url;
Som du kanskje har avgitt på dette punktet, trenger vi ikke en get-funksjon for API-nøkkelen for eksempel. Dette gjør vår klasse tryggere.
Vi har allerede ferdig med en setter, så det er tre igjen og alle har samme struktur.
/ ** * set_username () * * Angi brukernavnet * * @access offentlig * @param streng * @return void * / offentlig funksjon set_username ($ brukernavn) $ this-> brukernavn = $ brukernavn;
/ ** * set_api_key () * * Angi API-nøkkelen * * @access public * @param string * @return void * / offentlig funksjon set_api_key ($ api_key) $ this-> api_key = $ api_key;
/ ** * set_api_set () * * Angi API-settet * * @access offentlig * @param-streng * @return void * / offentlig funksjon set_api_set ($ api_set) $ this-> api_set = $ api_set;
Vi kan nå sette alle variabler slik:
set_api_url (); - Vi trenger ikke å endre API-URLen // $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); - Vi trenger bare å angi API-nøkkelen for å hente data fra det private settet // $ API-> set_username ('JohnDoe'); // - Vi trenger bare å angi Envato Marketplace brukernavn for å hente data fra det private settet $ API-> set_api_set ('popular: codecanyon'); // Still inn API-settet for å be om?>
La oss bygge en funksjon som vil be om dataene fra Envato Marketplace API. Vi begynner med å opprette en ny offentlig funksjon kalt be om
.
/ ** * forespørsel () * * Be om data fra API * * @access offentlig * @param void * @return array * / offentlig funksjon forespørsel ()
Vi kan bruke samme teknikk som ble brukt i den forrige opplæringen. For å be om data fra API, kan vi bruke cURL. La oss begynne med å bygge API-nettadressen - hvis brukernavnet og API-nøkkelen er satt, trenger vi en annen nettadresse.
hvis (! tomt ($ dette-> brukernavn) &&! tomt ($ this-> api_key)) // Bygg den private nettadressen $ this-> api_url. = $ this-> brukernavnet. '/'.$this->api_key.'/'.$this->api_set. '.Json'; // Eksempel: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json else // Bygg den offentlige url $ this-> api_url. = $ This-> api_set. '.Json'; // Eksempel: http://marketplace.envato.com/api/edge/popular:codecanyon.json
Vi sender en forespørsel til API-en ved hjelp av cURL slik:
$ ch = curl_init ($ this-> api_url); // Initialiser en cURL-økt og sett API-nettadressen curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Antall sekunder å vente mens du prøver å koble curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Retur overføringen som en streng i stedet for å utstede den direkte. $ ch_data = curl_exec ($ ch); // Utfør en cURL-økt curl_close ($ ch); // Lukk en cURL-økt
Vi har nå en variabel, kalt $ ch_data
som inneholder en JSON formatert streng. Før vi kan gjøre noe med dette, må vi dekode den inn i en matrise.
// Sjekk om variabelen inneholder data hvis (! Tom ($ ch_data)) return json_decode ($ ch_data, true); // Dekode de forespurte dataene i en matrise else return ('Vi kan ikke hente informasjon fra API'en.'); // Tilbake feilmelding
Funksjonen i sin helhet ser slik ut:
Offentlig funksjon forespørsel () hvis (! tomt ($ dette-> brukernavn) &&! tomt ($ this-> api_key)) // Bygg den private url $ this-> api_url. = $ this-> brukernavnet. '/'.$this->api_key.'/'.$this->api_set. '.Json'; else // Bygg den offentlige url $ this-> api_url. = $ this-> api_set. '.Json'; $ ch = curl_init ($ this-> api_url); // Initialiser en cURL-økt og sett API-nettadressen curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); // Antall sekunder å vente mens du prøver å koble curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Retur overføringen som en streng i stedet for å utstede den direkte. $ ch_data = curl_exec ($ ch); // Utfør en cURL-økt curl_close ($ ch); // Lukk en cURL-økt // Sjekk om variabelen inneholder data hvis (! Tom ($ ch_data)) return json_decode ($ ch_data, true); // Dekode de forespurte dataene i en matrise else return ('Vi kan ikke hente informasjon fra API'en.'); // Tilbake feilmelding
La oss prøve vår klasse og be om noe data fra API:
set_api_url (); // $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); // $ API-> set_username ( 'JohnDoe'); // Envato brukernavn $ API-> set_api_set ('popular: codecanyon'); // Sett inn API-settet for å be om ekko ''; print_r ($ API-> forespørsel ()); ekko ''; ?>
Nå som vår klasse jobber, er det på tide å bygge noen eksempler med de nye API-funksjonene.
For å be om informasjon om et markedsobjekt, må vi levere API-en med en varenavn. Du kan finne varen ID i URL-adressen til markedsplassen.
Nå som vi har vår ID, la oss be om varen informasjonen:
set_api_set ( 'punkt: 147 510'); // Sett inn API-settet for å be om ekko ''; print_r ($ API-> forespørsel ()); ekko ''; ?>
Følgende data skal returneres:
Array ([item] => Array ([salg] => 16 [vurdering] => 5 [kostnad] => 25,00 [bruker] => Philo01 [uploaded_on] => tue 21 desember 03:13:24 +1100 2010 [ url] => https://codecanyon.net/item/wordpress-car-dealer/147510 [live_preview_url] => images_26_4 / how-to-use-the-siste-oppdateringer-til-markedet-api_3.jpg [ miniatyrbilde] => http://s3.envato.com/files/1410780/Car_dealer_avatar.jpg [tags] => Lett å bruke, enkelt å sette opp, biloppbevaring, bilforhandler, forhandler, 2 bygge i glidebrytere, innfødt posttype og taksonomier, over 35 innstillinger, liste alle dine biler, lager system [id] => 147510 [item] => WordPress bilforhandler))
La oss nå bygge en enkel side som vil vise informasjonen ovenfor på en måte som andre brukere vil forstå det. Først må vi tilordne API-dataene til en variabel:
$ API = ny envatoAPI (); $ API-> set_api_set ( 'element: 147 510'); // Sett inn API-settet for å be om $ data = $ API-> forespørsel ();
Vi kan nå vise data fra API-en i følgende format: $ data [ 'element'] [ 'key']
.
set_api_set ( 'punkt: 147 510'); // Sett inn API-settet for å be om $ data = $ API-> forespørsel (); ?>">
Av , tilgjengelig for bare !
HTML etter PHP er analysert:
WordPress Bilforhandler
Av Philo01, tilgjengelig for kun 25.00!
I stedet for å opprette en ny API-forespørsel for å finne ut mer om vareprisen og lisensen, kan vi bare legge den til gjeldende API-sett.
$ API = ny envatoAPI (); $ API-> set_api_set ( 'element: 147510 + element-priser: 147510'); // Sett inn API-settet for å be om $ data = $ API-> forespørsel ();
API-svaret er under:
[item-prices] => Array ([0] => Array ([lisens] => Vanlig lisens [pris] => 25,00) [1] => Array ([lisens] => Utvidet lisens [pris] => 175,00 ))
Nå kan vi bruke denne returnerte informasjonen på vår vareside.
">
Av
Priser:
For å fullføre det, skal vi legge til antall elementer brukeren har. Vi kan bare legge det til API-settet.
$ API-> set_api_set ( 'element: 147 510 + element-priser: 147510 + bruker-varer-by-side: Philo01');
Og svaret:
[user-items-by-site] => Array ([0] => Array ([site] => ThemeForest [elementer] => 1) [1] => Array ([site] => CodeCanyon [items] = > 5))
La oss legge til denne informasjonen på vår side.
">
Av
Priser:
har flere elementer på Envato Marketplace
For å kunne bruke de private API-funksjonene, trenger du en markedsplass konto og en innkjøpskode fra en av dine kunder. Vi må først definere denne informasjonen.
$ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe');
Dette endrer automatisk API-nettadressen fra offentlig til privat sett. For å gjøre ting litt mer dynamiske, kan vi lage en liten form der brukeren kan legge inn noen opplysninger for å bekrefte kjøpet hans.
Merk: Når du bygger ditt eget nettsted, må du ikke bruke inline-stiler som dette!
Bekreft kjøp
Dette gir oss en grunnleggende form slik:
La oss nå komme til PHP-delen.
Først må vi sjekke om skjemaet er sendt med de nødvendige feltene fylt. Hvis du bruker dette på et levende nettsted, husk å legge til mer validering for å gjøre tingene mer sikre.
hvis (isset ($ _ POST ['submit'])) // Tilordne data til variabler $ brukernavn = $ _POST ['brukernavn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; // Sjekk om alle felt er fylt ut hvis (! Tomt ($ brukernavn) &&! Tomt ($ item_id) &&! Tomt ($ buy_code)) // API-forespørsel
Og nå API-forespørselen.
hvis (isset ($ _ POST ['submit'])) // Tilordne data til variabler $ brukernavn = $ _POST ['brukernavn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; // Sjekk om alle felt er fylt ut hvis (! Tomt ($ brukernavn) &&! Tomt ($ item_id) &&! Tomt ($ buy_code)) $ API = nytt envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verifiser kjøpet:'. $ Buy_code); $ data = $ API-> forespørsel ();
Et gyldig API-svar vil se slik ut:
Array ([verifiser-kjøp] => Array ([lisens] => Vanlig lisens [item_id] => 147510 [buyer] => EnvatoDemo [created_at] => torsdag 31 08:28:03 +1100 2009 [item_name] = > WordPress Bilforhandler))
Hvis forespørselen er ugyldig, returnerer API-en en tom rekkefølge. Hvis vi får svar fra API, betyr det at innkjøpskoden er riktig. For å gjøre det mer sikkert, vil vi matche det til det oppgitte elementet ID og brukernavnet.
hvis (isset ($ _ POST ['submit'])) // Tilordne data til variabler $ brukernavn = $ _POST ['brukernavn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; // Sjekk om alle felt er fylt ut hvis (! Tomt ($ brukernavn) &&! Tomt ($ item_id) &&! Tomt ($ buy_code)) $ API = nytt envatoAPI (); $ API-> set_api_key ( 'ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ( 'JohnDoe'); $ API-> set_api_set ('verifiser kjøpet:'. $ Buy_code); $ data = $ API-> forespørsel (); Hvis (! tomt ($ data)) // Vi har et gyldig API-svar, la oss matche vare-ID og brukernavn hvis ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data [ 'verifiser kjøpet'] ['buyer'] == $ brukernavn) // Alt ser ut til å være riktig! Kjøp bekreftet! // Vis litt info som kjøpsdato og lisens ekko 'Du har kjøpt varen på '. $ data ['verify-purchase'] ['created_at']. ' med ' . $ data ['verifiser-kjøp'] ['lisens']. '!
'; else // Svar fra API-en var tom, returner feil ekko 'Beklager, vi kan ikke bekrefte kjøpet ditt.
';
Nedlastingskjøpssettet lar deg laste ned dine egne kjøp uten å besøke markedsplassen.
Merk: Nedlastingskjøpet fungerer bare når du bruker din egen API-nøkkel og en innkjøpskode for et produkt du har kjøpt.
Nå som vi har kryssruten, la oss gjøre noen endringer i verifikasjonsprosessen.
Vi begynner med å opprette en ny variabel.
// Tilordne data til variabler $ brukernavn = $ _POST ['brukernavn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; $ download = (isset ($ _ POST ['download'])))? $ _POST ['download']: ";
Vi må også gjøre noen endringer i den gjenværende koden:
hvis (isset ($ _ POST ['submit'])) // Tilordne data til variabler $ brukernavn = $ _POST ['brukernavn']; $ item_id = $ _POST ['item_id']; $ buy_code = $ _POST ['buy_code']; $ download = (isset ($ _ POST ['download'])))? $ _POST ['download']: "; // Sjekk om alle felt er fylt ut hvis (! Tomt ($ brukernavn) &&! Tomt ($ item_id) &&! Tomt ($ buy_code)) $ API = ny envatoAPI $ API-> set_api_key ('ahdio270410ayap20hkdooxaadht5s'); $ API-> set_username ('JohnDoe'); // Hvis nedlastingen er merket, ber om nedlastingskjøpssettet hvis (! Tomt ($ download)) $ API-> set_api_set ('nedlastingskjøp:'. $ buy_code); $ data = $ API-> forespørsel (); // Angi topplasseringsstedet til nedlastingsadressen gitt av API-overskriften ("Location:". $ data ['download- kjøp '] [' download_url ']); else // Nedlastingsboksen ble ikke merket så bekreft kjøpet $ API-> set_api_set (' verifiser kjøpet: '. $ buy_code); $ data = $ API-> forespørsel (), hvis (! tomt ($ data)) // Vi har et gyldig API-svar la oss matche vare-ID og brukernavn hvis ($ data ['verify-purchase'] ['item_id'] == $ item_id && $ data ['verifiser kjøp'] ['buyer'] == $ brukernavn) // Alt ser ut til å være riktig! Kjøp verifisert! // Vis litt info som kjøpsdato og lisens ekko 'Du har kjøpt varen på '. $ data ['verify-purchase'] ['created_at']. ' med ' . $ data ['verifiser-kjøp'] ['lisens']. '!
'; else // Svar fra API-en var tom, returner feil ekko 'Beklager, vi kan ikke bekrefte kjøpet ditt.
';
Med disse endringene på plass, bør svaret se slik ut:
Array ([download-purchase] => Array ([download_url] => http: //download/ourfile.zip? AWSAccessKeyId = 12345 & Expires = 6789 & Signatur = HAoYF962% 53faf))
Jeg håper du har lært litt om Envato's markedsplass API. Hvis så, legg så denne kunnskapen til å bruke og bygge noen søte applikasjoner! Takk så mye for å lese, og gi oss beskjed hvis du har noen spørsmål eller bekymringer.