Med utgivelsen av den nye Envato Marketplace API har tredjepartsutviklere nå tilgang til et vell av informasjon for å lage alle slags nyttige applikasjoner. Denne opplæringen vil lære deg hvordan du lager din egen iPhone-app ved hjelp av data fra den nye APIen. Selv om du ikke har en iPhone, kan du fortsatt lære det grunnleggende om å bruke PHP og JSON.
Appen vi skal lage er basert på min iPhone-app, Envato Marketplace Mobile. Selv om vi ikke vil gjenskape hele appen, vil denne opplæringen gi deg en generell ide om hvordan den ble opprettet. Denne opplæringen er rettet mot PHP og JSON nybegynnere og tjener som grunnlag for å skape mer avanserte PHP-applikasjoner.
Før vi kan begynne å hente data ved hjelp av API, må vi lære å gå om å få tilgang til den. API er delt opp i 5 deler:
For mer informasjon om API, klikk her.
Nå som vi vet hva som kreves for å få tilgang til API, er vi klare til å sette den i bruk. Siden vi vil at andre skal bruke vår fantastiske app, må vi få et brukernavn og en API-nøkkel på flyet. så vi skal hente noen PHP-variabler fra nettleseren.
hvis (isset ($ _ GET ['user']) && $ _GET ['user']! = "") $ userName = $ _GET ['bruker']; hvis (isset ($ _ GET ['key']) og& $ _GET ['key']! = "") $ apiKey = $ _GET ['key']; else echo 'Api-nøkkelen ikke satt!'; exit; else echo 'Brukernavn ikke satt!'; exit;
Ovennevnte kode sjekker for å se om variablene bruker og nøkkel har blitt satt - og går ut hvis de ikke har det. Det kontrollerer også for å sikre at den globale variabelen ikke er tom.
Nå som vi har vår nødvendige informasjon, kan vi gå videre og bruke den til å hente dataene våre. For å gjøre dette vil vi bare lage en URL ved hjelp av formatet som er skissert i introduksjonen.
// Oppretter en streng som vil bli brukt til å få tilgang til API $ json_url = "http://marketplace.envato.com/api/edge/".$userName."/".$apiKey."/vitals+recent-sales .json ";
Legg merke til at vi bruker "kant" -versjonen og bruker våre tidligere variabler for brukernavnet og api-tasten. Til slutt skal vi hente vitals og siste salg datasett i JSON-formatet.
Nå som vi har opprettet vår URL for å få tilgang til API, må vi lese innholdet slik at de kan sendes til json_decode-funksjonen - som krever et faktisk json datasett, ikke bare en URL. Så, la oss gå videre og bruke file_get_contents () fungere for å lese innholdet i nettadressen.
// Hent innholdet i $ json_url-strengen $ json_contents = file_get_contents ($ json_url); // En liten feil å sjekke om (! $ Json_contents) echo "Feil: JSON-filen kunne ikke leses. Vennligst sjekk brukernavnet og api-tasten."; exit;
Vi er endelig klare til å konvertere JSON-dataene til en matrise slik at vi kan bruke den i vår søknad. For å oppnå denne oppgaven vil vi bruke json_decode () funksjon som vil ta data fra vår $ json_contents variabel og skriv den ut i en matrise.
// Utdata våre data til en matrise $ json_data = json_decode ($ json_contents, true);
Vi bruker to parametere i denne funksjonen, den første er strengen vi ønsker å dekode, og den andre forteller at funksjonen skal utdata dataene som en matrise. Det er det! Vi er nå klare til å vise våre data til brukeren.
Vi har hentet dataene våre, og nå er det på tide å vise det til brukeren. For enkelhets skyld vil vi legge til vår frontend-HTML-kode i samme fil som vår PHP-kode. Så fortsett og legg til standard HTML-dokumentkode under PHP-koden din.
Min Nettuts iPhone App - Min Nettuts iPhone App
Legg merke til at i
La oss gå videre og legge til en enkel div som viser brukernavnet hentet fra APIen. Vi kan gjøre dette ved å bruke $ userName-variabelen som vi brukte i sidetittelen, men det er mer spennende å bruke JSON.
Hva koden ovenfor gjør er å hente brukernavn fra vitals array, som er en matrise innenfor vår $ json_data array som ble opprettet tidligere. Gir mening?
Her er strukturen av arrayet som brukes i API-eksemplet: Array ([vitals] => Array ([brukernavn] => ryan [balanse] => 32,75))
Deretter ønsker vi å vise brukeren sin balanse. Dette gjøres på samme måte som vi viste brukernavnet. Denne gangen vil vi imidlertid bare bytte fra "brukernavn" til "balanse". Resten er bare for layout og styling.
"; $ count = $ count + 1; else break;?>Balanse: $Nylig salg:
Oppføring Nylig salg
Det siste på vår agenda er å vise det siste salget for en bruker. Dette er litt mer komplisert enn de tidligere eksemplene, men hvis du noen gang har jobbet med arrays, bør du kunne håndtere det.
Selges ". $ Verdi ['element']." til $ "$ Verdi. [ 'Mengde']."
Det er mye å fordøye her, så vi kan begynne med for hver uttalelse. Først oppretter vi en $ salesArray fra det siste salgssettet innen $ json_data. Dette er ikke nødvendig, men jeg synes det ser renere ut. Foreach-setningen oppretter en $ verdi for hver rad i $ salesArray array og lar oss trekke informasjon fra hver rad. Så, i utgangspunktet bruker du $ verdi for å få data fra rad som foreach-setningen løkker gjennom det.
Neste opp er koden som utføres hver gang foreach-setningen går gjennom en rad. I stedet for å vise alt det siste salget, vil jeg bare liste ti, og derfor, hvis antall rader som er sjekket overstiger ti, vil det bryte løkken. For å endre antall rader setningen løper gjennom, bare endre ti til nummeret du vil ha. Faktisk å vise radene er ganske enkelt, da det bare krever ekko ut hver rad i en div med et lite ikon. Vi bruker $ verdi for å få tilgang til salgsinformasjonen fra gruppen. Vi drar "punkt", som er varen tittelen og "beløp" som er mengden forfatteren gjorde på salget. Endelig "$ count + 1" bare øker tellingen av rader setningen har løpt gjennom. Du bør nå være klar! Prøv å laste filen på en testserver og se om den fungerer!
Hvis du ikke har en Envato Marketplace-konto, kan du bruke eksempelloggingen:
Vel, vår nye app fungerer bra, men det ser dårlig ut - det betyr at det er på tide å bryte ut noen CSS. Jeg antar at du vet nok for å forstå følgende kode som jeg ikke vil gå inn i det med unntak av noen få ting. #nettleser brukes av iPhone / Touch for å forsikre deg om at hvis siden er for liten at den fyller skjermen. body.lanscape #browser gjør det samme, men når nettleseren er i liggende modus.
kropp bakgrunn: #efefef; margin: 0px; polstring: 0px; font-familie: Helvetica; -webkit-touch-callout: ingen; -webkit-tekststørrelsesjustering: ingen; bredde: 100%; farge: # 2a2a2a; #browser / * sikre at vi alltid fyller hele skjermen * / min-høyde: 416px; body.landscape #browser min-høyde: 268px; h3 margin-bunn: 5px; p margin: 0 0 5px 0; / * Layout * / #header padding: 10px 5px 5px; høyde: 30px; farge: #fff; skriftstørrelse: 22px; bakgrunn: url (header_bg.jpg) repeat-x; #username font-size: 18px; font-weight: bold; tekst-transformer: store bokstaver; polstring: 5px; / * WebKit støtter tekstskygge ... så hvorfor ikke gjøre det ser pent ut * / tekstskygge: 0 1px 0 rgba (0, 0, 0, 0.5); farge: #fff; bakgrunn: # 498929; border-top: 1px solid # 85c952; grensebunn: 1px solid # 34661c; #content polstring: 5px; polstring: 10px; .icon vertikaljustering: tekst-topp; margin-høyre: 5px; .line polstring-bunn: 5px; grensebunn: 1px solid #cccccc; margin-bunn: 5px;
Det er på tide å gjøre din flotte app endelig iPhone-kompatibel. Dette er faktisk veldig enkelt og involverer bare en linje med kode.
Bare legg til koden ovenfor rett under
Vel ... vi er alle ferdige! Du kan se det ferdige produktet nedenfor.
Du har gjort det til slutten. Jeg håper dette var en god introduksjon for de som fortsatt er i begynnelsen av PHP og JSON. Du er nå klar til å lage din egen killer app ved hjelp av API og JSON generelt.
Nå husk, denne opplæringen er for nybegynnere og de som trenger en start for å bruke API.