콘텐츠로 이동

OpenClaw로 채팅 위치 데이터 파싱하기

채팅 봇을 개발하다 보면 사용자로부터 위치 정보를 받아야 할 때가 있죠. 하지만 플랫폼마다 데이터 형식이 제각각이라 이를 일일이 분석하고 정리하는 작업은 꽤나 번거롭습니다. 위도와 경도 값을 추출하고, 장소 이름을 확인하고, 실시간 위치인지 파악하는 로직을 매번 새로 만드는 대신 더 효율적인 방법이 필요합니다.

OpenClaw는 여러 채널에서 공유된 위치 정보를 읽기 쉬운 텍스트와 구조화된 필드로 자동 정규화해 줍니다. 개발자는 복잡한 파싱 로직 없이 바로 데이터를 사용할 수 있어요.

  • OpenClaw가 연결된 다음 채널 중 하나:
    • Telegram, WhatsApp
    • Matrix
  • 자동 응답(auto-reply) 설정을 위한 ctx 객체 접근 권한

OpenClaw는 위치 정보를 감지하면 두 가지 방식으로 데이터를 처리해요. 메시지 본문에 텍스트를 추가하고, ctx 페이로드에 필드를 생성합니다.

위치 정보는 대괄호 없이 깔끔한 텍스트로 렌더링됩니다. 주로 다음 두 가지 형태로 나타나요.

  • 일반 핀 및 장소 정보:
    • 📍 48.858844, 2.294351 ±12m
    • 📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
  • 실시간 위치 공유 정보:
    • 🛰 Live location: 48.858844, 2.294351 ±12m

채널에서 캡션이나 댓글을 함께 보냈다면, 아래 예시처럼 다음 줄에 해당 내용이 추가됩니다.

📍 48.858844, 2.294351 ±12m
여기서 만나요

위치 데이터가 들어오면 ctx 객체에 아래 필드들이 자동으로 채워집니다. 이 값들을 사용해 로직을 짜면 편리해요.

  • LocationLat (number) 및 LocationLon (number)
  • LocationAccuracy (number, 미터 단위) 및 LocationIsLive (boolean)
  • LocationName (string) 및 LocationAddress (string)
  • LocationSource (pin | place | live)
  • Telegram: 장소(venues) 정보가 누락되었다면 LocationName과 LocationAddress 필드를 확인하세요. 실시간 위치는 live_period 값을 통해 처리됩니다.
  • WhatsApp: 사용자가 보낸 메시지 내용이 보이지 않는다면 locationMessage.comment 또는 liveLocationMessage.caption이 텍스트 다음 줄에 제대로 붙었는지 확인하세요.
  • Matrix: geo_uri를 통해 위치를 가져올 때 고도(altitude) 정보는 무시됩니다. 또한 Matrix의 위치 정보는 LocationIsLive가 항상 false로 설정됩니다.

더 궁금한 점이 있다면 AI Setup Assistant에게 물어보세요.

OpenClaw

OpenClaw Expert

아직 막혀 있나요?

이 문서에서 답을 못 찾았다면 OpenClaw Expert에게 바로 물어보세요.