CAKE20

AI Web PaaS

Telegram 알람

웹사이트에서 발생한 사건을 사이트 관리자의 Telegram으로 알립니다.

관리자 Telegram 연결

  • 내 사이트의 설정에서 Telegram 알람 탭을 엽니다.
  • Telegram의 @BotFather에 /newbot을 보내 알람 전용 봇을 만듭니다.
  • BotFather가 발급한 Bot Token을 API Key에 입력합니다.
  • 생성한 봇의 대화를 열고 /start를 보낸 뒤 연결 정보 찾기를 누릅니다.
  • Telegram 알람 활성화를 선택하고 설정을 저장한 뒤 웹사이트를 다시 시작합니다.
  • API Key와 연결된 채팅 ID는 암호화 Secret으로 저장되며 저장 후 다시 표시하지 않습니다.

Bot Token은 봇 전체를 제어할 수 있는 비밀 값입니다. 소스, 채팅, 브라우저 코드나 공개 저장소에 작성하지 마세요. 연결 정보 찾기는 최근 개인 채팅의 /start를 사용하므로 알람 전용 봇을 권장합니다.

알람 보내기

  • telegram은 API, Route, Middleware, Task와 Job 같은 서버 코드에서만 사용합니다.
  • telegram.active는 설정이 활성화되고 API Key와 수신 채팅이 모두 연결됐을 때 true입니다.
  • telegram.send(text)는 1~4,096자의 일반 텍스트를 고정된 사이트 관리자 채팅으로 보냅니다.
  • telegram.send(text, { silent: true })는 소리 없는 알람을 보냅니다.
  • 결과의 messageId로 Telegram이 접수한 메시지 번호를 확인할 수 있습니다.
  • 수신자를 지정하는 chatId나 to 인자는 제공하지 않습니다. 사이트 회원에게 메시지를 발송하는 인터페이스가 아닙니다.
// server/api/comment.post.ts
export default async () => {
  // 댓글 저장 후 사이트 관리자에게 알림
  if (telegram.active) {
    await telegram.send("💬 새로운 댓글이 등록되었습니다.");
  }
  return { ok: true };
};

알람 조건 선택

Cake20은 알람 종류를 미리 고정하지 않습니다. 사이트 관리자가 댓글, 로그인, 주문, 문의, 오류나 예약 완료처럼 필요한 사건을 정하고 AI에게 해당 처리 직후 telegram.send를 호출하도록 요청합니다.

에디터에서 API, Task 또는 Job을 실행하며 telegram.send를 호출하면 실제 Telegram 알람이 전송됩니다. 반복 테스트 전에 사이트 관리자에게 알리세요.

공식 문의 알람 템플릿

  • 공식 Telegram 관리자 알람 템플릿(telegram-alert)은 고객 문의 폼을 사이트 소유자의 고정 개인 채팅으로 전달하는 예제입니다.
  • 문의자는 Telegram 계정이나 로그인이 필요하지 않습니다. 사이트 소유자만 BotFather 봇과 수신 채팅을 한 번 연결합니다.
  • 템플릿은 빈 website 필드를 Honeypot으로 사용합니다. 공개 운영 전 서비스 성격에 맞는 CAPTCHA, 인증 또는 추가 요청 제한을 검토합니다.
  • ownerAlert 유틸리티에서 메시지 형식을 관리하고 API에는 chatId, to 또는 Bot Token을 추가하지 않습니다.
// server/api/alert.post.ts
export default async (data: Input<typeof config.filter>) => {
  if (!telegram.active) {
    throw new Error("Telegram 알람을 먼저 연결해 주세요.");
  }
  return telegram.send(ownerAlert(data.name, data.email, data.message));
};