Vai al contenuto principale

Parsing delle posizioni dei canali

OpenClaw normalizza le posizioni condivise dai canali di chat in:
  • testo leggibile aggiunto al corpo del messaggio in ingresso, e
  • campi strutturati nel payload di contesto della risposta automatica.
Attualmente supportati:
  • Telegram (pin di posizione + luoghi + posizioni in tempo reale)
  • WhatsApp (locationMessage + liveLocationMessage)
  • Matrix (m.location con geo_uri)

Formattazione del testo

Le posizioni vengono rese come righe intuitive senza parentesi quadre:
  • Pin:
    • 📍 48.858844, 2.294351 ±12m
  • Luogo con nome:
    • 📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
  • Condivisione in tempo reale:
    • 🛰 Posizione in tempo reale: 48.858844, 2.294351 ±12m
Se il canale include una didascalia/commento, viene aggiunto alla riga successiva:
📍 48.858844, 2.294351 ±12m
Incontriamoci qui

Campi di contesto

Quando è presente una posizione, questi campi vengono aggiunti a ctx:
  • LocationLat (numero)
  • LocationLon (numero)
  • LocationAccuracy (numero, metri; facoltativo)
  • LocationName (stringa; facoltativo)
  • LocationAddress (stringa; facoltativo)
  • LocationSource (pin | place | live)
  • LocationIsLive (booleano)

Note sui canali

  • Telegram: i luoghi vengono mappati a LocationName/LocationAddress; le posizioni in tempo reale usano live_period.
  • WhatsApp: locationMessage.comment e liveLocationMessage.caption vengono aggiunti come riga della didascalia.
  • Matrix: geo_uri viene interpretato come una posizione pin; l’altitudine viene ignorata e LocationIsLive è sempre false.