Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Search API - Preis von App auslesen

Search API - Preis von App auslesen

Pineapps
Pineapps26.10.1223:19
Hallo,
ich habe folgendes Problem:
Ich habe eine App Testseite, bei der zu den Apps immer ein Preis und ein Link zum iTunes Store angegeben sind.
Da sich die Preise so oft ändern handhabe ich es bisher so, dass ich immer so den Standardpreis als Preis nehme.
Nun haben sich die Preise im Store geändert. Ich hätte jetzt a) die Möglichkeit alles per Hand zu ändern oder b) mir einen schönen Script dazu zu schreiben, aber ich würde lieber zu c) Preise aus iTunes auslesen greifen.
Nun habe ich wenig Erfahrung mit der Search API, aber es müsste doch gehen, dass ich mit der ID der App (wie auch immer ich die herausbekomme...) den dazugehörigen Preis mit der Search API ermitteln kann.
Ich arbeite sehr viel mit Datenbanken, von dem her wird nachher eh alles nur aus meiner Datenbank abgefragt und dann die Preise von Apple geholt. Mit PHP und MySQL habe ich erfahrung, nur leider mit JSON noch (fast) gar keine Erfahrung.
Würde mich über eure Hilfe freuen!

PS: Ein Link zur Apple Seite zur Search API
„Click. Boom. Amazing! - Steve Jobs“
0

Kommentare

Tago26.10.1223:55
Ja klar geht das!

Du rufst den search auf mit dem AppNamen und zurück bekommst du alle Werte geliefert.
http://itunes.apple.com/search?entity=software&term=AppName
Dann filterst du dir den Price Wert und setzt ihn die Datenbank.

Besser wäre es on demand mit js den Preis auf der Seite anzuzeigen.
D.h, ruft jemand die Seite auf wir per js der preis geholt und eingesetzt.
http://itunes.apple.com/search?entity=software&term=AppName&callback=myCallbackFunction
Die myCallbackFunction musst du in js schreiben, die wird nach dem Aufruf automatisch aufgerufen.
Hier musst du dann den Price in den html Code einsetzen.

Easy mit jQuery zu realisieren.
0
bmc desgin27.10.1200:40
JSON ist eigentlich ganz simple, 3 Zeilen Code zum erhalten der Daten von einer API, der Rest ist dann ein Array in PHP...

Schau dir mal die Syntaxen an auf php.net...


Cheers
„Ask your questions...“
0
Pineapps
Pineapps27.10.1210:08
Vielen Dank schonmal für die Hilfe!
Kann mir jemand vielleicht einen Beispielcode schreiben? ( mit HTML JSON und was man sonst noch braucht)
„Click. Boom. Amazing! - Steve Jobs“
0
Pineapps
Pineapps28.10.1213:59
kann mir keiner beim Code helfen?
„Click. Boom. Amazing! - Steve Jobs“
0
Tago29.10.1212:22
Also wie gesagt, ich würde es mit JavaScript lösen.
Wenn du die Daten mit einem Script in die DB einliest, dann sind die Daten alt. Ändert jemand jetzt den Preis, dann hast du trotzdem den falschen Preis in deiner DB. Daher solche Informationen am besten immer on demand.
Du kannst das auch mit PHP machen, allerdings würde der Seiten request darunter leiden, da der Abruf des search einen Augenblick dauert und deine Webseite erst aufgebaut wird, wenn PHP ausgeführt worden ist.

Daher, erst die Seite aufbauen und die Preise werden nach dem Aufbau (PHP/HTML) durch JS nachgereicht.

Hier lädst du dir das aktuelle jQuery Framework herunter http://jquery.com und packst es in dein Verzeichnis und bindest es im HTML Header ein. <script type="text/javascript" src="jquery-1.8.2.min.js"></script> - ggf. den Pfad richtig setzen.
Dann legst du dazu noch eine Datei an z.B. myjquery.js und bindest die auch ein <script type="text/javascript" src="myjquery.js"></script>

In deiner HTML Datei bezeichnest du dein Element wo der Preis reinsoll wie folgt:
<div class="myprice" name="Minecraft">--</div>
<div class="myprice" name="Brids">--</div>
<div class="myprice" name="Lili">--</div>
Ob das jetzt ein div oder etwas anderes ist, ist egal, wichtig ist, dass die class eindeutig und immer die selbe ist und name der Name des Apps angegeben ist.

In die myjquery.js packst du folgenden Code:

/*ruft nach dem Seitenaufbau den jquery code auf*/
jQuery(document).ready(function(){

/*geht alle Elemente die mit class="myprice" bezeichnet sind durch */
$('.myprice').each(function(index) {

/*holt sich den namen auf dem jeweiligen Element (AppName*/
appName = $(this).attr("name");
/*baut den Suchstring zusammen*/
searchURL = "http://itunes.apple.com/search?entity=software&country=de&term=" + appName;

/*sendet den Suchstring und fürht danach den callback aus*/
$.getJSON(searchURL + "&callback=?", function(data) {
/*über index holt er das richtige Element wieder*/
layer = $('.myprice').get(index);
/*schreibt den Preis in das Element*/
$(layer).html(data["results"][0].price + ' &euro;');

});
});

});



Viel Spaß damit!
0
Pineapps
Pineapps29.10.1219:06
Tago
Vielen Dank!
Ich will die Preise gar nicht in der Datenbank speichern, nur u.U. die eindeutige ID der jeweiligen App, sollte das die Preissuche erleichtern. Der Name und Entwickler ist schon gespeichert.
„Click. Boom. Amazing! - Steve Jobs“
0
Pineapps
Pineapps29.10.1220:21
Vielen vielen Dank!
Ich habe die Funktion jetzt eingebaut und diese hat gleich auf Anhieb funktioniert. Jetzt muss ich nur noch die App Namen von ein paar Apps ändern und dann ist alles super!
Vielleicht möchtest du dir das ganze ja mal auf meiner halbfertigen Seite ansehen www.(Mein MTN Benutzername).de
mfg Tim
„Click. Boom. Amazing! - Steve Jobs“
0
Tago30.10.1209:14
Hallo,

vielen Dank!

Das sieht doch gut aus!

Du musst allerdings mal etwas am Design ändern.
Das Layout lässt sich zu weit zusammenschieben, in der Breite. Auf mobilen Geräten (iPad) ist dadurch das ganze Layout verrutscht.
Auch passen die Überschriften der Tabelle nicht zu den Inhalten, Breitentechnisch.
0
Pineapps
Pineapps30.10.1218:49
Tago
Hallo,

vielen Dank!

Das sieht doch gut aus!

Du musst allerdings mal etwas am Design ändern.
Das Layout lässt sich zu weit zusammenschieben, in der Breite. Auf mobilen Geräten (iPad) ist dadurch das ganze Layout verrutscht.
Auch passen die Überschriften der Tabelle nicht zu den Inhalten, Breitentechnisch.
Ich meine erwähnt zu haben, dass die Seite erst halbfertig ist...
den Problemen bin ich mir bewusst...
Vielen Dank trotzdem für das Feedback!
„Click. Boom. Amazing! - Steve Jobs“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.