OpenClaw로 채팅 위치 데이터 파싱하기
채팅 봇을 개발하다 보면 사용자로부터 위치 정보를 받아야 할 때가 있죠. 하지만 플랫폼마다 데이터 형식이 제각각이라 이를 일일이 분석하고 정리하는 작업은 꽤나 번거롭습니다. 위도와 경도 값을 추출하고, 장소 이름을 확인하고, 실시간 위치인지 파악하는 로직을 매번 새로 만드는 대신 더 효율적인 방법이 필요합니다.
OpenClaw는 여러 채널에서 공유된 위치 정보를 읽기 쉬운 텍스트와 구조화된 필드로 자동 정규화해 줍니다. 개발자는 복잡한 파싱 로직 없이 바로 데이터를 사용할 수 있어요.
필요한 것
섹션 제목: “필요한 것”- OpenClaw가 연결된 다음 채널 중 하나:
- Telegram, WhatsApp
- Matrix
- 자동 응답(auto-reply) 설정을 위한
ctx객체 접근 권한
빠른 시작
섹션 제목: “빠른 시작”OpenClaw는 위치 정보를 감지하면 두 가지 방식으로 데이터를 처리해요. 메시지 본문에 텍스트를 추가하고, ctx 페이로드에 필드를 생성합니다.
1. 텍스트 포맷 확인하기
섹션 제목: “1. 텍스트 포맷 확인하기”위치 정보는 대괄호 없이 깔끔한 텍스트로 렌더링됩니다. 주로 다음 두 가지 형태로 나타나요.
- 일반 핀 및 장소 정보:
📍 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여기서 만나요2. 구조화된 필드 사용하기
섹션 제목: “2. 구조화된 필드 사용하기”위치 데이터가 들어오면 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 Expert
아직 막혀 있나요?
이 문서에서 답을 못 찾았다면 OpenClaw Expert에게 바로 물어보세요.