アプリケーションからLiveloxへのルート統合

自社のアプリケーションをLiveloxと統合することで、ルートデータのシームレスな転送が可能になり、アスリートが記録した動きをLiveloxプラットフォーム上に自動的に表示させることができます。このガイドでは、プログラムによるルート送信に関連する概念、認証要件、およびAPIエンドポイントの概要を説明します。

用語定義

  • ルート(Route) – アスリートの動きを示す(時刻、緯度、経度)のタプルのリストを含むGPSトラック。
  • ルート提供アプリケーション(Route providing application) – ルートを生成・提供する、主にウェブまたはモバイルアプリ。
  • インポート可能ルート(Importable route) – Liveloxにインポートするための、ルート情報とその他のメタデータを組み合わせたJSONオブジェクト。

認証

APIを使用するには認証が必要です。routes.import スコープを含むユーザー委任アクセスを利用してください。

詳細については、メインのAPIドキュメントページを参照してください。

インポート可能ルート用APIエンドポイント

POST https://api.livelox.com/importableRoutes

Liveloxにインポートするルートをキューに追加します。リクエストペイロードは、Content-Type: application/json を指定した インポート可能ルートオブジェクト である必要があります。実際のインポートは非同期で行われることに注意してください。この処理には通常5-15秒かかり、その間にLiveloxはルートを利用可能なイベントと照合し、可能であればそのイベント内で最も一致するクラスにルートを追加しようと試みます。

レスポンス

成功時は 200 OK、認証失敗時は 403 Forbidden を返します。

レスポンスペイロードの例

{
	// リクエストで提供されたアプリケーション独自のルート識別子。指定されなかった場合はLiveloxが生成した一意識別子
	// この値は常に文字列となります。インポート可能ルートオブジェクトで数値の id を指定した場合も同様です。
	"id": "123456"}

この id は後からインポートプロセスの状態を確認するために使用できるため、アプリ側で保存しておいてください。

GET https://api.livelox.com/importableRoutes/{id}

インポート可能ルートのメタデータを取得します。このエンドポイントを使用して、インポート処理のステータスを確認します。

レスポンス

成功時は 200 OK、認証失敗時は 403 Forbidden、インポートできるルートがないときは 404 Not Found を返します。

レスポンスペイロードの例

{
	// インポートのステータス
	// pending: インポート可能ルートを受信しましたが、まだインポートされていません
	// imported: ルートのインポートが完了しました
	// error: 何らかの理由でインポートできませんでした。詳細は errorMessage プロパティを確認してください
	"status": "imported",

	// Liveloxビューワー上で、Oマップにルートを重ねて表示するためのURL。statusimported の場合のみ設定されます
	"viewerUrl": "https://www.livelox.com/Viewer/...",

	// Livelox上でルート、およびイベントやクラスへの紐付けなどのプロパティを表示するためのURL。statusimported の場合のみ設定されます"showRouteUrl": "https://www.livelox.com/Sessions/Show/...",

	// Livelox上でルート、およびイベントやクラスへの紐付けなどのプロパティを編集するためのURL。statusimported の場合のみ設定されます
	"editRouteUrl": "https://www.livelox.com/Sessions/Edit/...",

	// ルートが紐付けられたLiveloxでのイベント名(ある場合)
	"eventName": "サンプルイベント",

	// ルートが紐付けられたLiveloxのイベントでのクラス名(ある場合)
	"className": "Sample class",

	// ルートのインポートが失敗した理由。statuserror の場合のみ設定されます
	"errorMessage": "Invalid route format"
}

インポート可能ルートオブジェクト

{
	// アプリケーションにおけるルートの一意識別子
	// 設定されていない場合、Liveloxが独自の識別子を作成します
	// 数値または48文字までの文字列を指定できます
	// 同じ識別子で再度POSTすると、以前のルートが上書きされます
	// 内部的には、Liveloxはこの識別子の先頭に投稿ユーザーのIDを付与します
	"id": 123456,

	// Base64エンコードされたGPSルートファイル
	// サポートされているファイル形式: GPX, TCX, FIT
	"data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGdweCB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnRvcG9ncmFmaXguY29tL0dQWC8xLzEiPgogICAuLi4KPC9ncHg+"

	// 任意:ルートの記録に使用されたデバイス/ハードウェアのモデル名
	"deviceModel": "Fancy Gadget XYZ300"

}