일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 주식투자
- 퀀트투자
- 직장인파이썬
- ubuntu
- 클라우드
- 개발자
- 보조지표
- 파이썬
- 이동평균
- 자동트윗
- 함수
- 주가하락
- 트위터
- dataframe
- 가치투자
- 단기투자
- 오라클클라우드
- 라이브러리설치
- 오라클
- 고등퀀트
- 주가상승
- 차트분석
- pandas
- 우분투
- 크롤링
- Firewall
- cloud
- 변동성
- python
- Today
- Total
주경야매 미국주식
텔레그램 봇 메시지 보내기 본문
텔레그램에 자동으로 메세지를 보내는 봇, 어떻게 작동하나?
여느 메신저들과 같이 텔레그램 역시 대화방에 사람들이 참여해 대화를 나누는 메신저이다. 봇은 나 대신 대화를 하는 대리인으로, 내가 원하는 시점에 원하는 메시지를 보낼 수 있도록 만드는 것이다.
따라서 봇을 이용해 텔레그램에 자동으로 메시지를 보내는 방법은: 1) 봇을 만들고, 2) 봇과의 대화방을 만들고, 3) 봇과 대화상대들이 대화를 나누는 형식으로 진행된다.
1) ~ 2)은 일회성 작업이므로 텔레그램 메신저 상에서 수작업으로 진행되고, 4)는 수시로 발생하는 이벤트 이므로 파이썬을 이용해 코딩해주게 된다.
텔레그램에 메시지를 쏠 때는 누가(발신인)이 어느 대화방(수신처)에 쏘는지 지정해야 한다.
여기서 발신인은 텔레그램 봇이고, 각각의 봇은 고유의 token을 가진다. 각 대화방 역시 고유의 값을 가지는데 이를 chat id라고 한다. 따라서 token과 chat id를 알아내는게 메시지를 쏘기 위한 첫 단계다.
1) 봇을 만들자.
텔레그램 앱에 접속해서 대화상대 검색창에 BotFather를 검색한다. 모바일 앱, PC앱, 웹앱 뭐든 다 좋다. 여기에서는 화면 캡쳐를 편하게 하기 위해 웹버전을 사용한다. BotFather는 대화명 그대로 봇을 만들어주는 아버지다.
다른거 말고 맨 위에 있는 공식마크가 붙은 BotFather가 진짜다. 이 친구와 대화를 시작하자. BotFather를 누르면 대화창이 열리면서 START 버튼이 보인다. 버튼을 눌러야 BotFather와 대화가 시작된다. 모바일 앱에서는 /start를 입력한다.
START를 누르자 BotFather와 할 수 있는 일들이 표시된다. 우선 맨 위에 있는 /newbot을 입력해 새로운 봇을 만든다.
/newbot을 입력하니 봇의 이름을 고르란다. 원하는 이름을 입력한다. 여기에서는 CTS-monitor 라고 입력했다.
이번에는 username을 요구한다. username은 bot으로 끝나야 한다. CTS_monitor_bot 이라고 입력한다. 언더스코어(_) 말고 대쉬(-)로 입력하면 받아주지 않는다.
정상적으로 봇이 만들어지면 봇에 할당된 비밀번호라고 할 수 있는 token이 생성된다. 가운데 있는 값이 지금 만든 CTS-monitor 봇의 token이다. 대화방에 봇 이름으로 메시지를 보낼 때 필요한 필수 정보이므로, 나중에 이용할 수 있도록 대화방을 닫지 말고 놔두자.
봇이 만들어졌고, token까지 확보했다면 다음 단계로 넘어가자.
2) 봇과의 대화방을 만들자.
카톡으로 친구와 대화할 때 친구 아이디를 선택해 대화를 시작하면 대화방이 만들어지는 것과 마찬가지로, 봇과의 대화방도 봇을 찾아 대화를 시작하면 만들어진다.
이제 방금 만든 봇과 대화를 시작하자. 검색창에 봇 이름을 넣고 검색해 대화방을 만들어도 되고, 앞에서 BotFather가 알려준 링크 t.me/CTS_monitor_bot을 클릭해 대화방을 만들어도 된다.
봇과의 대화 역시 START 버튼을 눌러야 한다. 모바일 앱에서는 /start를 입력한다.
봇과 대화를 시작했으니 대화방이 만들어졌다. 이제 대화방의 id인 chat id를 딸 수 있다.
https://api.telegram.org/bot토큰/getUpdates
위 링크를 복사해 웹브라우저 주소창에 넣고 실행해보자. 토큰 부분에는 방금 생성한 봇의 토큰을 복사해 넣어야한다.
실행 결과가 이렇게 나타나면 정상이다. 이제 바로 앞에서 오픈한 대화방에서 아무 말이나 입력해 대화를 하고, 웹브라우저에서 F5를 눌러 결과값을 리프레쉬 해보자.
웹브라우저 화면 결과값이 바뀐걸 볼 수 있다. 위 화면에서 빨간색으로 표시된 id 값이 현재 당신이 봇과 대화하고 있는 채팅방의 챗아이디 이다. 이 챗 아이디 역시 봇과의 대화를 위해 필요하다.
3) 봇으로 대화방에 메시지를 보내자
봇 토큰과 채팅방의 챗아이디가 준비되었으면 봇이 대화방에 메시지를 보낼 수 있다. 웹브라우저 주소창에 아래 링크를 입력하고 실행해보자. 토큰에는 1)에서 준비한 봇의 토큰을, 챗아이디에는 2)에서 준비한 챗아이디를 넣는다. 메시지는 본인이 원하는 메시지 아무거나 넣어도 좋다.
https://api.telegram.org/bot토큰/sendMessage?chat_id=챗아이디&text=메시지
실행이 완료되면 웹브라우저와 텔레그램 메신저는 각각 아래와 같이 변한다.
봇이 보낸 메시지가 대화방에 도착해있다.
봇을 이용해 텔레그램에 메시지를 보내기 완성!
파이썬으로 하든, 자바스크립트로 하든 상관 없다. 어떤 언어에서든 필요한 시점에 아래 링크를 호출하기만 하면 텔레그램 대화방에 봇이 메시지를 보낼 것이다.
https://api.telegram.org/bot토큰/sendMessage?chat_id=챗아이디&text=메시지
언제, 어떤 메시지를 이 링크를 통해 보낼지는 필요에 따라 코딩하면 되겠다.
보너스, 텔레그램 메시지를 보내는 파이썬 코드.
import requests
token = '토큰'
chat_id = '챗아이디'
msg = '보낼 메시지'
url = 'https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}'.format(token, chat_id, msg)
requests.get(url)
쥬피터 노트북 같은데선 테스트 용으로 위에서 처럼 쓸테고, 일반적으로는 아래처럼 함수로 만들어 쓰겠다.
import requests
def telegram_send(token, chat_id, msg):
url = 'https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}'.format(token, chat_id, msg)
r = requests.get(url)
return r
함수에서 리턴값 r은 메시지가 잘 보내졌는지 확인하는 용도이다.
'파이썬' 카테고리의 다른 글
폐쇄망에 파이썬 및 라이브러리 설치 (0) | 2022.09.17 |
---|---|
메이저리그 기록 크롤링 (baseball-reference.com) (0) | 2022.07.26 |
구글 뉴스 크롤링 (0) | 2022.07.04 |
파이썬의 클래스 (0) | 2022.06.22 |
파이썬의 함수 (0) | 2022.06.22 |