OpenClaw でチャットの位置情報をパースする方法
チャットアプリから送られてくる位置情報を扱うのは、意外と面倒な作業です。プラットフォームごとにデータの形式がバラバラで、それぞれ個別にパース処理を書くのは時間がかかります。
OpenClaw を使えば、共有された位置情報を自動で正規化できます。人間が読みやすいテキストとして受信メッセージの body に追加するだけでなく、API や自動応答で使いやすい構造化データとして ctx ペイロードに格納します。
この機能は、以下のプラットフォームでサポートされています。
- Telegram (location pins, venues, live locations)
- WhatsApp (locationMessage, liveLocationMessage)
- Matrix (
m.locationとgeo_uri)
クイックスタート
Section titled “クイックスタート”OpenClaw は位置情報を受信すると、自動的に以下の 2 つの形式に変換します。
1. テキスト形式への変換
Section titled “1. テキスト形式への変換”メッセージの 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ここで待ち合わせ2. 構造化データ (Context fields)
Section titled “2. 構造化データ (Context fields)”プログラムで処理を行う際は、ctx オブジェクトに追加される以下のフィールドを利用してください。
LocationLat(number)LocationLon(number)LocationAccuracy(number, meters; optional)LocationName(string; optional)LocationAddress(string; optional)LocationSource(pin | place | live)LocationIsLive(boolean)
トラブルシューティング
Section titled “トラブルシューティング”各プラットフォームの仕様による挙動の違いに注意してください。
- Telegram:
- Venue(施設情報)は
LocationNameとLocationAddressにマッピングされます。 - Live location は
live_periodを使用して処理されます。
- Venue(施設情報)は
- WhatsApp:
locationMessage.commentやliveLocationMessage.captionは、テキストの次の行にキャプションとして追加されます。
- Matrix:
geo_uriを Pin 位置としてパースします。- 高度(altitude)の情報は無視されます。
LocationIsLiveは常にfalseとなります。
セットアップで困ったことがあれば、AI Setup Assistant に質問してください。
次のステップ
Section titled “次のステップ”OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。