コンテンツにスキップ

OpenClaw でチャットの位置情報をパースする方法

チャットアプリから送られてくる位置情報を扱うのは、意外と面倒な作業です。プラットフォームごとにデータの形式がバラバラで、それぞれ個別にパース処理を書くのは時間がかかります。

OpenClaw を使えば、共有された位置情報を自動で正規化できます。人間が読みやすいテキストとして受信メッセージの body に追加するだけでなく、API や自動応答で使いやすい構造化データとして ctx ペイロードに格納します。

この機能は、以下のプラットフォームでサポートされています。

  • Telegram (location pins, venues, live locations)
  • WhatsApp (locationMessage, liveLocationMessage)
  • Matrix (m.location と geo_uri)

OpenClaw は位置情報を受信すると、自動的に以下の 2 つの形式に変換します。

メッセージの body に、以下のような読みやすい形式で位置情報が追加されます。

  • Pin(ピン): 📍 48.858844, 2.294351 ±12m
  • Named place(場所名あり): 📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
  • Live share(現在地の共有): 🛰 Live location: 48.858844, 2.294351 ±12m

チャット側でキャプションやコメントが入力されている場合は、次の行にそのまま表示されます。

📍 48.858844, 2.294351 ±12m
ここで待ち合わせ

プログラムで処理を行う際は、ctx オブジェクトに追加される以下のフィールドを利用してください。

  • LocationLat (number)
  • LocationLon (number)
  • LocationAccuracy (number, meters; optional)
  • LocationName (string; optional)
  • LocationAddress (string; optional)
  • LocationSource (pin | place | live)
  • LocationIsLive (boolean)

各プラットフォームの仕様による挙動の違いに注意してください。

  • Telegram:
    • Venue(施設情報)は LocationName と LocationAddress にマッピングされます。
    • Live location は live_period を使用して処理されます。
  • WhatsApp:
    • locationMessage.comment や liveLocationMessage.caption は、テキストの次の行にキャプションとして追加されます。
  • Matrix:
    • geo_uri を Pin 位置としてパースします。
    • 高度(altitude)の情報は無視されます。
    • LocationIsLive は常に false となります。

セットアップで困ったことがあれば、AI Setup Assistant に質問してください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。