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;
}
?>