Token API
Das API des Website erlaubt es anderen Websites, direkte Links zu Streamingseiten auf artfilm.ch anzugeben, ohne dass der Benutzer ein Passwort eingeben muss. Die Authentifizierung erfolgt über ein Token, das aus folgenden Elementen berechnet wird:
- Der Pfad zur Seite (ohne die Domain)
- Username
- Das Konto des Websites
- Das Password des Websites
- Einen Zeitstempel
Der Pfad macht nur Sinn, wenn er auf eine Seite des Namespace "Pass:" zielt.
Wenn nicht eine bestimmte Streamingseite avisiert ist, sollte der Pfad "api:api" lauten.
Der Username ist das ID der Bibliothek. Er wird nicht direkt übertragen, sondern nur als Hash, damit die unterschiedlichen Nutzer auseinandergehalten werden können. Wie die Bibliothek den Username definiert, ist ihr überlassen, solange sie für jeden Nutzer einen eindeutigen Username wählt.
Das Konto und das Passwort wird dem Website von der Administration artfilm.ch zugeteilt.
Das Token muss wie folgt berechnet werden (PHP code):
$apiaccount = KONTO-WEBSITE; // durch Administration zugeteilt, zB. "zb"
$apipassword = PASSWORT; // durch Administration zugeteilt, zB "678131"
$username = USERNAME ; // Bibliothek User ID
$path = URL-PFAD-ZUR-SEITE; // zB. "api:api"
$userhash = substr(md5($username.$apiaccount),0,6); // Hash für User, zB. "6a7fbc"
$server = "https://www.artfilm.ch/index.php?";
$timestamp = sprintf("%08x", time()); // Anzahl Sekunden seit 1.1.1970 im Hexformat, zB. "5ae9b2c0"
$token = $timestamp."|".md5($timestamp.$path.$userhash.$apiaccount.$apipassword); // md5 als Hex String
$url = $server."name=".$path."&userhash=".$userhash."&account=".$apiaccount."&token=".$token;
Für den Timestamp gilt eine Toleranz von +- 6 Stunden.
Websites mit API haben Zugang zu den Seiten mit den Namespaces Streaming: und API.
Wenn Sie auf eine bestimmte Sprachseite gehen möchte, fügen Sie noch hinzu
$url .= "&lang=de";
Fehlermeldungen
Folgende Fehlermeldungen können zurückkommen:
- Wrong token format : Vermutlich wurde der Timestamp vor dem Hash vergessen.
- Timestamp in future : Der Timestamp liegt mehr als 6 Stunden in der Zukunft.
- Timestamp too old : Der Timestamp ist mehr als 6 Stunden alt.
- Unknown account : Das Apiaccount gibt es nicht
- Invalid path : Der Link benutzt einen Pfad, der weder mit Pass:: noch mit Api: beginnt
- Invalid token : Das Token ist falsch. Vermutlich stimmt das Passwort nicht oder der PHP code wurde falsch übertragen.
- HTTP/1.0 404 Not Found: Der PHP code und Passwort stimmen, aber der Pfad exisiert nicht.