Die LogMyTime API ist eine OData V2 Api, die alternativ auch als RESTful API per HTTP und XML oder JSON erreichbar ist.
Durch die Kompatibilität zu OData V2 Standard, kann sie auf einfache Weise über zahlreiche clientseitige Libraries für .NET, Java, Ruby, PHP, Javascript und viele weitere Programmiersprachen und Umgebungen angesprochen werden.
Für das Endergebnis ist es gleich, ob Sie eine clientseitge Library verwenden, oder lieber direkt mit HTTP-Request arbeiten. aufgrund der Einfachheit empfehlen wir jedoch die Verwendung einer clientseitigen library.
Die API ist unter folgenden Adresse erreichbar:
https://api.logmytime.de/V1/Api.svc
Wir empfehlen generell den Zugriff über HTTPS, da nur dieser vor dem Abhören durch Dritte geschützt ist. Sollte dies aus technischen Gründen nicht möglich sein, ist jedoch auch der Zugriff über HTTP möglich.
Es gibt mehrere Möglichkeiten, auf die API zuzugreifen:
Für Softwareentwickler ist der einfachste Weg die Verwendung einer der zahlreichen Bibliotheken/Libraries. Hier finden Sie eine Liste der momentan unterstützten Bibliotheken und einige Anwendungsbeispiele .
Alternativ können Sie auf die API auch direkt per HTTP und XML oder JSON zugreifen . Dies kann dann notwendig sein, wenn für Ihre Programmiersprache noch keine Library erhältlich ist.
Sie können mit der API nur die Lese- und Schreiboperationen ausführen, die dem jeweiligen Benutzeraccount auch auf der Webseite gestattet wären. Die Zugriffsrechte sind hier aufgeschlüsselt.
Um die API zu benutzen, muss der jeweilige Mitarbeiter in seinem LogMyTime Konto unter "Verwaltung" -> "Eigenes Profil" einen API-Schlüssel generieren. Dieser dient als Login und Passwort für den Zugriff auf die API.
Der API-Schlüssel muss bei jedem Zugriff auf die API übermittelt werden. Hierzu haben Sie drei verschiedene Optionen:
Hierzu fügen Sie Ihren API-Schlüssel als GET-Parameter in der URI ein.
Beispiel: mit curl die erfassten Zeiten auflisten, mit GET-Authentifizierung
curl https://api.logmytime.de/V1/Api.svc/TimeEntries?ApiKey={apischluessel}
Basic-Authentication ist wird von vielen verschiedenen HTTP clients unterstützt.
Entscheidend ist hier nur das Passwort, der Mitarbeitername spielt keine Rolle
Beispiel: mit curl die erfassten Zeiten auflisten (mit Basic-Authentication)
curl -u x:{apischluessel} https://api.logmytime.de/V1/Api.svc/TimeEntries
Dazu muss der HTTP Request Header die Zeile X-LogMyTimeApiKey: {apischluessel} enthalten.
Beispiel: mit curl die erfassten Zeiten auflisten (mit HTTP Header Authentifizierung)
curl -H 'X-LogMyTimeApiKey: {apischluessel}' https://api.logmytime.de/V1/Api.svc/TimeEntries
Falls Sie einen Client für LogMyTime entwickeln (z.B. ein nativer Client für Windows Phone 7), sollte sich dieser gegenüber der API ausweisen. Sie helfen uns damit, mögliche Probleme bei der Kommunikation zwischen Clients und der LogMyTime API zu erkennen.
Bitte übermitteln Sie dazu im HTTP Request Header den Parameter "User-Agent" oder "X-UserAgent" und eine frei von Ihnen erfundene ID sowie der Versionsnummer Ihres Clients.
Beispiel: Ausweisen des Client-Typs mit UserAgent-Parameter:
Request Header: GET /V1/Api.svc/Projects User-Agent: Adrians LogMyTimeClient 1.0 ...weitere Parameter...