kostenloser Webspace werbefrei: lima-city


Mit PHP auf API zugreifen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Hallo zusammen,
    ich möchte auf meiner Homepage meine zuletzt gespielten Spiele von dem Spiel "League of Legends" ausgeben und habe dafür folgende API gefunden:

    http://api.captainteemo.com/player/euw/Test/recent_games

    Wie kann ich mit PHP auf die einzelnen Daten der API zugreifen?

    Hab sowas leider noch nie gemacht und kenn mich damit nicht aus. Den Link habe ich von einem Admin eines englischen Forums bekommen und bevor ich versuche dem mein Anliegen auf Englisch vorzutragen, wollte ich es erst einmal hier versuchen.

    Ich freue mich über Hilfe.
    Liebe Grüße

    Beitrag zuletzt geändert: 15.4.2013 21:11:23 von ultimate-bravery
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    ultimate-bravery schrieb:
    Derjenige, der mir den Link geschickt hat, meinte, dass ich "test" nur mit meinem Namen austauschen müsste. Aber dafür muss ich den Code ja abspeichern, ändern und neu hochladen oder?
    Er meint vermutlich das »Test« in der URL

    ultimate-bravery schrieb:
    In was für eine Datei kommt das denn dann?
    In gar keine ;-)

    ultimate-bravery schrieb:
    Und wie kann ich mit PHP auf die einzelnen Daten der API zugreifen?
    Indem du die Datei mit cURL o.ä. herunterlädst und mit
    json_decode()
    decodierst. Ein Beispiel gibt es sogar in der Hilfe.
  4. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Ok danke, ja das mit dem Test hab ich gerade auch bemerkt, deswegen habe ich meinen Beitrag gerade oben wieder editiert.

    Muss das etwa so aussehen?

    $json_file = @file_get_contents("http://api.captainteemo.com/player/euw/Test/recent_games", 0, null, null);
    $json_array = json_decode($json_file, true);


    Wie würde dann das "echo" aussehen?

    Beitrag zuletzt geändert: 15.4.2013 21:15:42 von ultimate-bravery
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    ultimate-bravery schrieb:
    Muss das etwa so aussehen?
    So kann es aussehen, wobei es so reichen würde:
    $json_file = @file_get_contents('http://api.captainteemo.com/player/euw/Test/recent_games');
    $json_array = json_decode($json_file);
    Also ohne den Parametern.

    Testen kannst du das mit
    print_r($json_array);


    Willst du z.B. auf die Account-ID zugreifen (irgendwo ganz oben in dem Dokument) sieht das ca. so aus:
    $accountId = $json_arary->player->accountId;
  6. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Super, danke! Funktioniert. Wie muss ich es machen, wenn ich auf ein Wert in einem Array aus der API zugreifen will? Oder wenn ich das ganze array ausgeben will?
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    ultimate-bravery schrieb:
    Wie muss ich es machen, wenn ich auf ein Wert in einem Array aus der API zugreifen will? Oder wenn ich das ganze array ausgeben will?
    So wie du es normalerweise bei Arrays und Objekten machen würdest, denn dein
    $json_array
    ist nichts anderes.
  8. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Ok habs soweit hinbekommen danke. Allerdings stimmt da grad irgendetwas nicht. In der API stehen meine letzten 10 Spiele. Die stehen im ersten Array, was geöffnet wird, also nach "gameStatistic". Die Spiele will ich mir gerade erstmal grob ausgeben. Dafür hab ich den Code:

    for($i = 0; $i < 10; $i++){
    	$game = $json_array->data->gameStatistics->array[$i];
    	print_r($game);
    	echo "<hr>";
    }

    Die ersten 8 Spiele werden ausgegeben, bei den letzten beiden kommt allerdings folgende Meldung:

    Notice: Undefined offset: 8/9 in C:\Program Files (x86)\EasyPHP-12.1\www\wordpress\test.php on line 7


    Aber eigentlich müsste es doch klappen, da in dem Array in der API 10 Einträge sind.
  9. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    ultimate-bravery schrieb:
    Die ersten 8 Spiele werden ausgegeben, bei den letzten beiden kommt allerdings folgende Meldung:
    Notice: Undefined offset: 8/9 in C:\Program Files (x86)\EasyPHP-12.1\www\wordpress\test.php on line 7
    Aber eigentlich müsste es doch klappen, da in dem Array in der API 10 Einträge sind.
    Bei deinem Demolink sehe ich nur 8 Einträge, das würde die Fehlermeldung erklären. Du solltest aber bei der Bedingung statt 10 besser
    count()
    verwenden, dann kann dir so ein Fehler gar nicht passieren.

    Aber mittlerweile sind das wohl kaum mehr Probleme mit der API als vielmehr mit PHP selbst ;-)

    Beitrag zuletzt geändert: 15.4.2013 22:16:49 von hackyourlife
  10. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Oh ja danke. In der API mit dem User "Test" waren es nur 8 Einträge, bei der API von meinem Account sind es aber 10. Habe die ganze Zeit in meiner API geguckt, im Code war aber noch die andere API eingetragen, deswegen war ich verwirrt.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!