サードパーティ製アプリケーションのルートをLiveloxと統合する

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

用語定義(Terminology)

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

認可(Authorization)

APIを使用するには認可が必要です。routes.import スコープを使用してください。

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

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

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

Liveloxにインポートするルートをキューに追加(エンキュー)します。リクエストのペイロードは、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(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": "Sample event",

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

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

インポート可能ルートオブジェクト(The importable route object)

{
    // アプリケーション側で管理するルートの固有識別子
    // 未設定の場合、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
}
新型4G GPSトラッカー
将来の規格にも対応した新しいトラッカーデバイスは、精度とバッテリー寿命が大幅に向上しています。ライブトラッキングの本命として、オンラインストアから直接ご注文いただけます。詳細はこちらをご覧ください