봇 연결

POST/v1/bots/{id}/heartbeat

봇 코드에서 개발자 토큰으로 이 봇의 heartbeat를 한 번 보내면 봇이 한카리에 연결돼요. 봇 등록 5단계는 이 호출을 기다렸다가 다음 단계로 넘어가요. 연결에 따로 쓰는 주소는 없고, 그 뒤로 보내는 heartbeat가 곧 가동 상태 보고예요.

연결은 토큰을 가진 프로그램이 실제로 돌고 있다는 것까지만 확인해요. 봇이 정말 이 제작자의 것인지는 심사자가 테스트방에서 직접 확인해요.

연결 순서#

  1. Hankari Devs에서 봇 정보, 명령어, 초대 설정, 테스트방을 입력해요.
  2. 5단계 봇 연결에서 봇 id를 확인해요. 개발자 토큰이 없으면 그 자리에서 만들어요. 토큰은 이때 한 번만 보이고, 이미 만든 토큰이 있으면 그대로 써도 돼요.
  3. 봇 코드에 토큰과 봇 id를 넣고 아래처럼 heartbeat를 보내요.
  4. 화면이 "봇이 연결됐어요"로 바뀌면 심사를 신청할 수 있어요.

경로 변수#

이름설명
id봇 id. bot_으로 시작해요. 봇 등록 5단계나 봇 관리 › 연동, 토큰 화면에서 복사할 수 있어요. 커스텀 URL은 받지 않아요.

요청 헤더#

이름필수설명
Authorization필수Bearer {개발자 토큰}

응답#

200 OK
{
  "status": "online",
  "reportedAt": "2026-09-14T06:02:11.000Z"
}

토큰이 잘못됐거나 폐기된 토큰이면 401을, 봇 id가 틀렸거나 토큰 주인이 그 봇을 다룰 수 없으면 404를 돌려줘요. 예전 주소 /v1/bots/heartbeat와 /v1/bots/verify는 410 Gone을 돌려줘요.

코드 예시#

메신저봇R#

// 봇이 켜질 때 한 번 호출
const HANKARI_TOKEN = "hkd_…";
const BOT_ID = "bot_…";

org.jsoup.Jsoup
  .connect("https://hankari.dev/v1/bots/" + BOT_ID + "/heartbeat")
  .header("Authorization", "Bearer " + HANKARI_TOKEN)
  .ignoreContentType(true)
  .method(org.jsoup.Connection.Method.POST)
  .execute();

Iris#

# 봇이 켜질 때 한 번 호출
import requests

requests.post(
    f"https://hankari.dev/v1/bots/{BOT_ID}/heartbeat",
    headers={"Authorization": "Bearer " + HANKARI_TOKEN},
    timeout=10,
)

curl#

curl -X POST "https://hankari.dev/v1/bots/$BOT_ID/heartbeat" \
  -H "Authorization: Bearer $HANKARI_TOKEN"