oebb/oebbApi.README
Klaus-Uwe Mitterer 6a9fa3917f Create central config file, just in case
Kick out old oebbApi
Move old LICENSE and README files out of the way
Add phpQuery
2016-04-16 23:07:48 +02:00

364 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Dokumentation für die ÖBB Api
==========
Allgemeines
-----------
**Was brauche ich dafür?**
* Einen Server, der die PHP-Files ausführen kann. Es genügt auch ein Freehoster.
* PhpQuery in der Version 0.9.5 oder höher. [http://code.google.com/p/phpquery/](http://code.google.com/p/phpquery/)
**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://oebb.at). [http://www.oebb.at/de/Nutzungsbedingungen/index.jsp](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](https://flattr.com/profile/internetztube) [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TKFLMZMXM3Z64)
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
<?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
<?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
<?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
<?php
header('Content-type: text/html; charset=utf-8');
require_once "oebbApi.php";
$api = new oebbApi();
var_dump($api->getCoords());
```
```array
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](mailto:internetz2tb@gmail.com)
[http://twitter.com/InternetzTube](http://twitter.com/InternetzTube)