oebb/README.md
2014-07-05 16:52:40 +02:00

12 KiB
Raw Blame History

Dokumentation für die ÖBB Api

Allgemeines

Was brauche ich dafür?

Was muss ich beachten?

  • Der Code bzw. die API ist nicht von einem Profi, sondern von einem Lehrling im ersten Lehrjahr programmiert worden. Deswegen bitte ich um ausschließlich konstruktive Kritik.
  • Es gelten die Allgemeinen Geschäftsbedingungen und die Nutzungsbedingungen von oebb.at. http://www.oebb.at/de/Nutzungsbedingungen/index.jsp
  • Es wird keine Haftung übernommen! Sie sind für ihr Handeln selbst verantwortlich. Der Rechtsweg ist ausgeschlossen!

Wenn Sie etwas für einen Lehrling in ersten Lehrjahr spenden möchten, dann können Sie das über diese Links tun. :)

Flattr PayPal

Station validieren - validate()

Wissenwertes

  1. Es ist zu beachten, dass bei einem Aufruf mehrere Stationen zurückkommen können.
  2. Für den weiteren Vorgang wird ausschließlich der name („value“) benötigt.

Parameter

Name Typ Beschreibung Zwingend benötigt
name string Name der Station Ja

Rückgabewerte

Name Typ Beschreibung Wird benötigt
value string Gültiger Name der Station Ja
id int IBNR Nein

Beispiel

<?php

header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";

$api = new oebbApi();
var_dump($api->validate("St. Pölten"));

array(1) {
  [0]=>
  array(2) {
    ["value"]=>
    string(10) "ST.PÖLTEN"
    ["id"]=>
    string(9) "001130201"
  }
}

Verbindung suchen - get()

Wissenwertes

  1. Die Stations-Namen können leicht abgeändert eigegeben werden. Aus „St. Pölten“ wird „St.Pölten Hbf“
  2. Wenn die Parameter „date“, „time“ nicht verwendet oder mit NULL angegeben werden, wird automatisch das aktuelle Datum bzw. Zeit verwendet.
  3. Die „id“ ist für die Verwendung der Funktionen „getDetails“ und in Folge „getCoords“ essenziell.
  4. Wenn Sie drei Verbindungen in der Vergangenheit (relativ zur ersten Verbindung) möchten, dann verwenden Sie „earlier“ als Anfangszeit und fügen Sie zu „amount“ drei dazu.Wenn Sie drei Verbindungen weiter in der Zukunft möchten, dann lassen die Anfangszeit gleich und erhöhen Sie einfach „amount“ um 3.

Parameter

Name Typ Beschreibung Zwingend benötigt
departure string Name der Abfahrtsstation Ja
arrival string Name der Ankunftsstation Ja
amount int Anzahl der Verbindungen Ja

Rückgabewerte

Name Typ Beschreibung Wird benötigt
startStation string Name der Abfahrtsstation Nein
endStation string Name der Ankunftsstation Nein
startDate string Abfahrtsdatum, wichtig bei Nachtzügen Nein
endDate string Ankunftsdatum Nein
startTime string Abfahrtszeit Nein
endTime string Ankunftszeit Nein
duration string Fahrtdauer Nein
changes int Umstiege Nein
buyLink string Kauflink zur Verbindung Nein
changesLink string Link zur Verbindung auf oebb.at Nein
products array Alle Verkehrsmittel mit Bezeichnung und Bild Nein
prognose string BETA, Verspätungen Nein
id int Nummer der Verbindung der Anfrage Nein
earlier string Siehe oben. Nein

Beispiel

<?php

header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";

$api = new oebbApi();
$connections = $api->get("St. Pölten", "Linz", 1);
var_dump($connections);

array(1) {
  [0]=>
  array(14) {
    ["startStation"]=>
    string(14) "St.Pölten Hbf"
    ["endStation"]=>
    string(14) "Linz/Donau Hbf"
    ["startDate"]=>
    string(10) "16.01.2014"
    ["endDate"]=>
    string(10) "16.01.2014"
    ["startTime"]=>
    string(5) "19:56"
    ["endTime"]=>
    string(5) "20:45"
    ["duration"]=>
    string(4) "0:49"
    ["changes"]=>
    int(0)
    ["buyLink"]=>
    string(127) "https://ticketing.oebb.at/inet/pub/ticket?outwardDateTime=2014-01-16T19%3A56&stationOrigEva=001130201&stationDestEva=001140101&"
    ["changesLink"]=>
    string(347) "http://fahrplan.oebb.at/bin/query.exe/dn?ld=19&seqnr=1&ident=ed.04333180.1389897270&GO_conViewMode=outward&HWAI=CONNECTION$C0-0!id=C0-0!HwaiConId=C0-0!HwaiDetailStatus=details!HwaiMoreDetailStatus=none!HwaiAdditionalInformation=none!HwaiConnectionNumber=1!;~CONNECTION$C0-0!HwaiMapStatus=UNDEFINED!HwaiMapNumber=UNDEFINED!HwaiMapSlider=UNDEFINED!;"
    ["products"]=>
    array(1) {
      [0]=>
      array(2) {
        ["name"]=>
        string(6) "RJ 764"
        ["img"]=>
        string(46) "http://fahrplan.oebb.at/img/vs_oebb/rj_pic.gif"
      }
    }
    ["prognose"]=>
    string(0) ""
    ["id"]=>
    int(0)
    ["earlier"]=>
    string(5) "18:56"
  }
}

Details einer Verbindung - getDetails

Wissenwertes

  1. Von der Funktion „getDetails“ bekommen Sie die essenziellen Infos einer spezifischen Verbindung.
  2. Für den Aufruf benötigen Sie lediglich die „id“ der Verbindung. Diese „id“ bekommen Sie von der Funktion „get“ zurück.
  3. Funktioniert nur bei einer erfolgreich ausgeführten Suche (get).

Parameter

Name Typ Beschreibung Zwingend benötigt
id int Index der spezifischen Verbindung. Siehe get Ja

Rückgabewerte

Array Name Typ Beschreibung Wird benötigt
start
station string Name der Einstiegs Station Nein
time string Abfahrtszeit von der Station Nein
plattform string Bahnsteig an der Station Nein
date string Abfahrtsdatum Nein
prognose string Aktuelle Zeit, if n.a = string(0) Nein
end
station string Name der Ausstiegs Station Nein
time string Ankunftszeit an der Station Nein
plattform string Bahnsteig an der Station Nein
date string Ankunftsdatum Nein
prognose string Aktuelle Zeit, if n.a = string(0) Nein
data
productName string Produktname, z.B RJ, ICE, BUS Nein
productImg string Dazugehöriges Bild zum Produkt oebb.at Nein
productUrl string ersicht für die Linie. NULL Bug Nein
duration string Fahrzeit der Verbindung Nein

Beispiel

<?php

header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";

$api = new oebbApi();
var_dump($api->getDetails(0));

array(1) {
  [0]=>
  array(3) {
    ["start"]=>
    array(5) {
      ["station"]=>
      string(17) "St.Pölten Hbf"
      ["time"]=>
      string(6) " 19:56"
      ["plattform"]=>
      string(1) "5"
      ["date"]=>
      string(10) "16.01.2014"
      ["prognose"]=>
      string(10) "pünktlich"
    }
    ["end"]=>
    array(5) {
      ["station"]=>
      string(18) "Linz/Donau Hbf"
      ["time"]=>
      string(6) " 20:45"
      ["plattform"]=>
      string(4) "6A-C"
      ["date"]=>
      string(10) "16.01.2014"
      ["prognose"]=>
      string(10) "pünktlich"
    }
    ["data"]=>
    array(4) {
      ["productName"]=>
      string(6) "RJ 764"
      ["productImg"]=>
      string(46) "http://fahrplan.oebb.at/img/vs_oebb/rj_pic.gif"
      ["productUrl"]=>
      string(221) "http://fahrplan.oebb.at/bin/traininfo.exe/dn/618567/292343/760906/174264/181?ld=19&seqnr=3&ident=ed.04333180.1389897270&date=16.01.2014&station_evaId=8100008&station_type=dep&journeyStartIdx=5&journeyEndIdx=9&backLink=tp&"
      ["duration"]=>
      string(5) "06:12"
    }
  }
}

Koordinaten einer ganzen Verbindung - getCoords()

Wissenwertes

  1. Es muss erfolgreich die Funktion „ getDetails“ aufgerufen werden.
  2. Es ist zu beachten, dass diese Funktionen noch in manchen Fällen komische Ergebnisse zurückliefen kann. Es wird bereits daran gearbeitet.
  3. Jede Verbindung ist in einem Array zurück.

Change Log v0.3 Plausibilitätsprüfung der Teilverbindungen

Parameter

Sie müssen nur die Funktion „getDetails“ mit der jeweiligen Verwundung aufrufen, dann bekommen Sie die Koordinaten dieser Verbindung.

Rückgabewerte

Name Typ Beschreibung Wird benötigt
name string Stations-Name Nein
xcoord string x-Koordinate Nein
ycoord string y-Koordinate Nein
realName string Debugging Name Nein

Beispiel

<?php

header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";

$api = new oebbApi();
var_dump($api->getCoords());

array(1) {
  [0]=>
  array(2) {
    [0]=>
    array(4) {
      ["name"]=>
      string(14) "St.Pölten Hbf"
      ["xcoord"]=>
      string(8) "15623800"
      ["ycoord"]=>
      string(8) "48208331"
      ["realName"]=>
      string(13) "St.Plten Hbf"
    }
    [1]=>
    array(4) {
      ["name"]=>
      string(14) "Linz/Donau Hbf"
      ["xcoord"]=>
      string(8) "14291814"
      ["ycoord"]=>
      string(8) "48290150"
      ["realName"]=>
      string(14) "Linz/Donau Hbf"
    }
  }
}

Erstellt von Fred.

internetz2tb@gmail.com

http://twitter.com/InternetzTube