ご自身のアプリケーションをLiveloxと統合することでルートデータのシームレスな転送が可能になり、アスリートが記録した移動軌跡をLiveloxプラットフォーム上に自動的に表示させることができます。本ガイドでは、プログラムによってルートを送信する際に関連する概念、認可要件、およびAPIエンドポイントの概要について説明します。
APIを使用するには認可が必要です。routes.import スコープを使用してください。
詳細については、メインAPIドキュメントページを参照してください。
POST https://api.livelox.com/importableRoutesLiveloxにインポートするルートをキューに追加(エンキュー)します。リクエストのペイロードは、Content-Type: application/json を指定したインポート可能ルートオブジェクトにする必要があります。なお、実際のインポート処理は非同期で行われます。通常5〜15秒かかるこの処理の間に、Liveloxはルートを利用可能なイベントと照合し、可能な場合はそのイベント内で最もよく一致するクラスに自動追加を試みます。
成功時は 200 OK、認可エラー時は 403 Forbidden。
{
// リクエストで提供されたアプリケーション側のルート固有識別子(未提供の場合はLiveloxが自動生成した固有識別子)
// この値は常に文字列(string)となります。インポート可能ルートオブジェクトで数値の 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ビューアーでオリエンテーリングマップ上にルートを表示するためのURL(status が imported の場合のみ設定)
"viewerUrl": "https://www.livelox.com/Viewer/...",
// Liveloxでのイベントやクラスへの紐付け情報など、ルートとその属性を表示するためのURL(status が imported の場合のみ設定)
"showRouteUrl": "https://www.livelox.com/Sessions/Show/...",
// Liveloxでのイベントやクラスへの紐付け情報など、ルートとその属性を編集するためのURL(status が imported の場合のみ設定)
"editRouteUrl": "https://www.livelox.com/Sessions/Edit/...",
// ルートが紐付けられたLiveloxイベントの名称(紐付けがある場合)
"eventName": "Sample event",
// ルートが紐付けられたLiveloxイベント内のクラス名(紐付けがある場合)
"className": "Sample class",
// ルートのインポートが失敗した理由(status が error の場合のみ設定)
"errorMessage": "Invalid route format"
}
{
// アプリケーション側で管理するルートの固有識別子
// 未設定の場合、Liveloxが独自の固有識別子を生成します
// 整数、または最大48文字の文字列を指定可能です
// 同じ固有識別子を持つインポート可能ルートを再送信(POST)すると、以前のルートデータが上書きされます
// 内部処理として、Liveloxはこの識別子の先頭にルートを送信したユーザーの識別子を付与します
"id": 123456,
// Base64でエンコードされたGPSルートファイルデータ
// サポートされているファイル形式: GPX, TCX, FIT
"data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGdweCB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnRvcG9ncmFmaXguY29tL0dQWC8xLzEiPgogICAuLi4KPC9ncHg+",
// オプション: ルートを記録したデバイス/ハードウェアのモデル名
"deviceModel": "Fancy Gadget X123",
// オプション: ルートを記録した人物に関する情報
// APIキーを使用してリクエストを行う場合のみ使用されます
"person": {
"firstName": "John",
"lastName": "Doe"
},
// オプション: 紐付けるLiveloxのクラスID(判明している場合)
// クラスIDを取得するには、GET https://api.livelox.com/events または GET https://api.livelox.com/events/{eventId} エンドポイントを使用します
// クラスIDが指定されない場合、Liveloxはルートの日時や地理的エリアに該当するクラス・コースとルートを照合し、
// 十分に一致するものが見つかれば、そのクラスへ自動的に紐付けます
"classId": 123456
}