본문 바로가기

AI

OpenClaw 텔레그램 봇 연동 삽질기: Webhook에 막히고, Pairing에 막히고, 결국 restart로 살린 하루

반응형

솔직히 말하면, 나는 “텔레그램 봇 붙여놓으면 그냥 잘 되겠지”라고 생각했다. OpenClaw도 채널 상태가 ON/OK로 뜨고, 토큰도 제대로 넣었고, 봇도 @BotFather로 만들었으니 끝난 줄 알았다.

그런데 현실은 달랐다. /start를 눌러도 봇이 대답을 안 하고, 내가 보낸 메시지도 씹히고, 가끔은 아예 연결이 끊긴 것처럼 보였다. 결론부터 말하면 문제는 한 가지가 아니었다.

  • 1차: 내가 /start내 봇이 아니라 BotFather에 보내고 있었다
  • 2차: 내 봇에 webhook이 남아있어서 OpenClaw가 업데이트를 못 받았다
  • 3차: DM이 pairing(페어링 승인) 정책에 걸려서 아무 반응이 없었다
  • 4차: 잘 되다가도 가끔 텔레그램 폴링이 멈춰 gateway restart로 살아났다

오늘 글은 그 삽질을 한 번에 정리해서, 다음번엔 나(그리고 당신)가 10분 만에 끝낼 수 있게 만든 “실전 복구 노트”다.

 

AI 자동화 에이전트 구축기

 


1) 증상 0: “I can help you create and manage Telegram bots…”만 보인다

이 문구가 보이면 거의 확실하게 내 봇이 아니라 @BotFather 대화창을 보고 있는 거다.

체크

  • 대화 상대가 @BotFather인지, 내가 만든 봇(예: @hwirin_bot)인지 먼저 확인
  • BotFather는 봇 만들기/관리용이고, 실제 대화는 내 봇 DM에서 해야 한다

이건 웃기지만 진짜 많이 헷갈린다. 나도 그랬다.


2) 증상 1: 토큰 넣었는데도 봇이 ‘아예’ 말을 안 한다 → webhook 확인

OpenClaw는 텔레그램을 기본적으로 long-polling(getUpdates)으로 받는다. 그런데 텔레그램 봇은 webhook이 설정되어 있으면 업데이트를 webhook으로 보내버릴 수 있다.

해결(핵심)

1) webhook 상태 확인

https://api.telegram.org/bot<YOUR_TOKEN>/getWebhookInfo
  • 여기서 url 값이 비어있지 않으면, webhook이 잡혀 있는 것

2) webhook 제거

https://api.telegram.org/bot<YOUR_TOKEN>/deleteWebhook?drop_pending_updates=true

이 단계가 진짜 중요하다. “토큰은 맞는데 왜 안 오지?”의 상당수가 여기서 끝난다.


3) 증상 2: OpenClaw 로그에 ‘pairing request’가 뜬다 → DM 페어링 승인

OpenClaw 텔레그램 DM은 기본값이 dmPolicy: pairing인 경우가 많다. 이때는 봇이 DM을 받긴 받는데, 승인 전까지는 의도적으로 응답을 안 한다.

내 케이스는 로그에 이런 뉘앙스가 찍혔다:

  • telegram pairing request

해결

터미널에서:

openclaw pairing list telegram
openclaw pairing approve telegram <CODE>

특이점: 어떤 상황에선 pairing 요청이 “순간” 지나가거나 이미 승인 상태여서 No pending으로 뜰 수도 있다. 그럴 땐 봇에게 DM을 한 번 더 보내고 다시 확인한다.


4) 증상 3: 잘 되다가 어느 순간부터 ‘조용’해진다 → restart로 밀린 메시지가 한꺼번에 온다

가장 헷갈렸던 지점이 이거다.

  • 맥북은 깨어있고
  • 채널 상태도 겉으론 OK인데
  • 텔레그램에서 보낸 메시지가 한동안 반응이 없다
  • 그런데 openclaw gateway restart를 하면 갑자기 밀린 메시지가 한 번에 쏟아진다

이건 체감상 “화면이 꺼져서 죽었다”가 아니라, 텔레그램 폴링 루프가 멈칫한 상태에 더 가깝다.

내가 정한 운영 룰(실전)

1) 10~20초는 네트워크 지연으로 보고 기다리기
2) 그래도 반응이 없으면 상태 확인:

openclaw status --deep

3) 이상하면 응급처치:

openclaw gateway restart

이게 지금까지 제일 빠르고 확실했다.


5) 내가 얻은 결론: “연동은 한 번에 안 끝난다. 하지만 체크리스트면 끝난다”

처음엔 AI 에이전트 자동화보다 “봇 연결”이 더 쉬울 줄 알았다. 실제로는 반대로, 연동 초기 설정이 제일 귀찮다.

그런데 체크리스트로 굳히면 끝이다.

  • BotFather가 아니라 내 봇 DM에 메시지 보내고 있나?
  • webhook이 제거되어 있나?
  • DM pairing이 승인됐나?
  • 조용해지면 status --deepgateway restart 순서로 복구했나?

이 정도만 고정하면, OpenClaw를 “채널 붙은 나만의 작업 자동화 엔진”으로 굴릴 준비가 된다.

 

반응형