OpenClawSkills
GitHub
Canales • 5 min de lectura

Parseo de Ubicación

Parseo de ubicación entrante (Telegram + WhatsApp + Matrix) y los campos de contexto involucrados.

OpenClaw normaliza ubicaciones compartidas en canales de chat en:

- Un texto legible por humanos añadido al final del texto entrante, y

- Campos estructurados en el payload de contexto de auto-respuesta.

Actualmente soportado:

- Telegram (pin de ubicación + venue/POI + ubicación en vivo)

- WhatsApp (locationMessage + liveLocationMessage)

- Matrix (m.location usando geo_uri)

Tutorial.step

Formato de Texto

Las ubicaciones se renderizan como texto de línea legible (sin corchetes):

- Pin de ubicación:

- 📍 48.858844, 2.294351 ±12m

- Lugar nombrado:

- 📍 Torre Eiffel — Champ de Mars, París (48.858844, 2.294351 ±12m)

- Compartir en vivo:

- 🛰 Ubicación en vivo: 48.858844, 2.294351 ±12m

Si el canal también lleva un caption/comentario, se añade en la siguiente línea:

Terminal
📍 48.858844, 2.294351 ±12m
Nos vemos aquí
Tutorial.step

Campos de Contexto

Cuando un mensaje contiene una ubicación, se añaden lo siguiente a ctx:

- LocationLat (número)

- LocationLon (número)

- LocationAccuracy (número, en metros; opcional)

- LocationName (string; opcional)

- LocationAddress (string; opcional)

- LocationSource (pin | place | live)

- LocationIsLive (booleano)

Tutorial.step

Notas por Canal

- Telegram: Los venues mapean a LocationName/LocationAddress; las ubicaciones en vivo usan live_period.

- WhatsApp: locationMessage.comment y liveLocationMessage.caption se añaden como líneas de caption.

- Matrix: geo_uri se parsea como "pin de ubicación (pin)"; la altitud se ignora; LocationIsLive siempre es false.