오늘의 순서는 아래와 같습니다.
1. 텔레그램 봇만들기 (토큰값 복사)
2. 채널용, 그룹용, 개인용 ID 확인하기
3. 텔레그램 메시지 발송 함수 만들기
1. 텔레그램 봇만들기
텔레그램에 뉴스기사등의 컨텐츠를 발송하기 위해서는 먼저 텔레그램 봇을 만들어야 합니다.
1)텔레그램의 검색창에서 botfather를 검색합니다.
2) /newbot을 입력합니다.
3) 봇의 이름을 정합니다.. 예) coinnews
4) 봇을 위한 유저네임을 정합니다. @뒤에 나오는 이름이며, 이름의 마지막은 bot이 들어가야 합니다. 예) coinnews_bot
유저네임의 경우 이미 등록되어 있거나, 텔레그램에서 요구하는 양식에서 벗어나면 이름을 다시 정하라고 합니다.
2번의 재도전끝에 coinnews01_bot 라고 유저네임을 등록했습니다.
여기까지 진행했으면 나만의 텔레그램봇이 만들어진겁니다. 빨간색 칠해진 부분에 토큰값을 복사합니다.
2. 채널용, 그룹용, 개인용 chat_id 찾기
다음은 chat_id를 찾아야 합니다. 텔레그램으로 메시지를 보내기 위해서는 수신인의 id를 알아야 하는데요.
id는 크게 3가지 종류가 있습니다. 개인용은 다 아실테니, 채널과 그룹의 차이점부터 말씀드릴게요.
채널은 방 참가자가 메시지를 확인만 할수 있고, 메시지를 보낼순 없습니다. 공지사항, 뉴스방 성격에 어울리죠.
그룹은 방참가자들끼리 메시지를 보내며 대화를 할수 있습니다. 커뮤니티 성격에 어울립니다.
이제 chat_id를 찾아보겠습니다.
브라우저 검색창에 https://api.telegram.org/bot토큰값/getUpdates 을 입력합니다. 아래와 같은 화면에 나오면 성공입니다.
다시 텔레그램으로 돌아가서 아까 만든 봇의 이름을 클릭합니다.
봇에게 아무메시지나 보낸후 다시 아까 브라우저 창에서 새로고침을 합니다. 그러면 결과값이 바뀌는데요
여기에 나오는 id는 개인용 id입니다.
이번에는 그룹용 id, 채널용 id를 찾아볼게요. 둘다 과정은 동일하니 채널용으로 해보겠습니다.
먼저 채널을 만들어야 합니다.
이제 채널이 만들어졌습니다.
이제 봇을 제 채널에 초대하고 관리자에 추가합니다. 봇의 유저네임으로 검색하면 됩니다.
봇이 초대된 후에 채널방에서 아무 메시지나 보냅니다. 그리고 아까의 브라우저를 새로고침합니다.
그러면 아까의 로그에 다른 id가 추가된걸 볼수 있는데요. -가 붙은게 채널id입니다.
그러면 토큰값과 채널id를 모두 확보했습니다. 이제는 언제든지 텔레그램으로 자동메시지 발송이 가능한데요.
먼저 완성된 텔레그램 메시지 발송 함수를 볼게요.
import requests
def send_telegram_message(message):
# 텔레그램 봇 토큰과 채팅 ID를 입력하세요
token = '987654:AdEf3_04x3vlL40LkNrqnx6wNE'
chat_id = '-123456798'
url = f"https://api.telegram.org/bot{token}/sendMessage"
payload = {
'chat_id': chat_id,
'text': message
}
response = requests.post(url, data=payload)
return response.json()
함수를 살펴보면 tocken, chat_id, message의 변수를 입력받아서 텔레그램 api로 전송하면 텔레그램api가 나의 그룹, 채널, 개인으로 메시지를 전송해주는 겁니다. 이걸 py스크립트로 만들어서, 다른 스크립트로 임포트해서 편하게 사용하면 됩니다. 간단하죠?
방금 만든 텔레그램 모듈을 활용해서 실제로 메시지를 텔레그램으로 보낸 결과물이 아래와 같습니다. 뉴스기사의 제목과 링크를 message에 담아서 보낸거죠.
사진으로 설명하려니 꽤 번거로운데요. 다음엔 영상으로 편집해서 좀더 쉽게 보실수 있도록 해보겠습니다.