카테고리 없음

Telegram 메시지 보내기

Wood Pecker 2026. 9. 9. 15:39

1. 개요

   나의 웹페이지 등에 누군가 글을 올리면 이를 곧바로 나의 텔레그램으로 메시지를 보내어 알려주도록  하려고 한다. 

2. telegram  token 얻기

     텔레그램 앱 상단 검색창에 @BotFather를 입력합니다.
    이름이 비슷한 가짜 계정이 여러 개 나오는데, 이름 옆에 파란색 체크 표시(공식 인증 마크)가 있습니다.
    정확히 @BotFather인 계정을 선택해야 합니다. 여기에 토큰이 오가기 때문에 이 확인은 중요합니다.

   앱을 실행후 대화창에서  화면 하단에 'START' 버튼을  누르거나 
   /start        입력을  한다.   그러면  사용가능한 명령어 목록과 설명이 쭉 보입니다.   
   /newbot   <== 입력 

   'Alright, a new bot. How are we going to call it?' 같은 안내와 함께 봇 이름을 물어봅니다.
   다음과 같이 입력합니다. 나중에 변경 가능합니다. 
   
   (예)  myname   <== 텔레그램 채팅창에 보이는 이름입니다. 

   다음 단계로 나의 고유 username을 입력하라고 메시지가 보입니다. 
   규칙이 두 가지 있는데, 반드시 bot 또는 _bot으로 끝나야 하고,   영문·숫자·언더스코어만 쓸 수 있습니다.
   (예)   myname1234_bot
   전 세계에서 유일해야 하므로 흔한 이름은 대부분 이미 쓰이고 있습니다. 이건 나중에 변경할 수 없습니다.

   성공하면 'Use this token to access the HTTP API:' 라는 문구와 함께 123456789:AAF... 형태의 문자열을 줍니다.
   이것이 token입니다.  이때 함께 보내주는  BotFather 메시지에서 다음을 찾아서 클릭합니다. 

   ==>  (예)   t.me/ myname1234_bot   링크를 눌러  나의 채팅방으로 들어갑니다. 

3. chat_id 알아내기 
   이곳 나와의 채팅방에서  START를 누릅니다.  또는 
   /start   <==  입력

   여기에서 자기 자신에게 아무 문자나 보냅니다. 
   (예) 안녕 

    다음 웹브라우저에서 아래 주소를 입력하면   chat_id를 보내옵니다. 
        https://api.telegram.org/bot{token을입력}/getUpdates

       (예)   https://api.telegram.org/bot123456789:AAFAAAA/getUpdates
   
   아래와 같은 메시지를 웹브라우저에서 확인합니다. 

   {"ok":true,"result":[{"update_id":40362692,
       "message":{"message_id":110,"from":{"id":12345678,"is_bot":false,"first_name":"
         ....
      "}}]}


   위와 같이 메시지가 보이면 chat_id는 12345678 이 됩니다. 

4. php로 메시지 보내기 

<?php
$botToken = '88123459:AAGKKK0405XXX'; //<== 이곳을 수정 
$chatId   = '12345678';  //<== 이곳을 수정 
$message  = '안녕하세요! PHP에서 보낸 Telegram 메시지입니다.';

$url = "https://api.telegram.org/bot{$botToken}/sendMessage";

$data = [
    'chat_id' => $chatId,
    'text'    => $message
];

$options = [
    'http' => [
        'method'  => 'POST',
        'header'  => "Content-Type: application/x-www-form-urlencoded\r\n",
        'content' => http_build_query($data),
        'timeout' => 10
    ]
];

$context = stream_context_create($options);

$result = file_get_contents($url, false, $context);

if ($result === false) {
    echo "Telegram 메시지 전송 실패\n";
} else {
    echo "Telegram 메시지 전송 성공\n";
    echo $result;
}
?>
반응형