Slik bruker du de nyeste oppdateringene til Marketplace API

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!


Hva er en API?

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-API

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.


Er APIer brukt mye?

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.


Nye API-funksjoner

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.

Offentlig

  • 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.

Privat

  • 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-446655440000

Krav

For å 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!


Trinn 1 - Bygg vår klasse

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:

 

Trinn 2 - Globale variabler

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.json
  • Privat - http://marketplace.envato.com/api/edge/username/api-key/set.json

Som du kan se, trenger vi totalt fire variabler:

  • API-url
  • Sett
  • Brukernavn
  • API-nøkkel

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

Trinn 3 - Setter & Getter Metoder

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.


Trinn 4 - Fullføring av resten av setterne

Vi har allerede ferdig med en setter, så det er tre igjen og alle har samme struktur.

Angi brukernavn

 / ** * set_username () * * Angi brukernavnet * * @access offentlig * @param streng * @return void * / offentlig funksjon set_username ($ brukernavn) $ this-> brukernavn = $ brukernavn; 

Angi API-nøkkel

 / ** * 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; 

Angi API-sett

 / ** * 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?>

Trinn 4 - Be om data

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

Trinn 5 - Teste funksjonen

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 '
'; ?>

Trinn 6 - Testing av de nye funksjonene til offentlig API

Nå som vår klasse jobber, er det på tide å bygge noen eksempler med de nye API-funksjonene.

Punkt

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!

element-priser

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:

    '. $ p ['lisens']. '- $'. $ p ['pris']. ''; ?>

bruker-items-by-side

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:

    '. $ p ['lisens']. '- $'. $ p ['pris']. ''; ?>

har flere elementer på Envato Marketplace

    '. $ p ['elementer']. 'på'. $ p ['nettsted']. ''; ?>

Trinn 7 - Testing av de nye funksjonene til Private API

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');

verify-kjøp

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.

';

download-kjøp

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.

 

Last ned element

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))

Konklusjon

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.