[리원아빠] 파이썬으로 텔레그램 메시지 보내기

2022. 9. 15. 15:36Python

반응형


파이썬으로 텔레그램 메시지 보내기



2022.03.02 - [Python] - [리원아빠] 파이썬으로 카카오톡 메시지 나에게 보내기

[리원아빠] 파이썬으로 카카오톡 메시지 나에게 보내기

카카오톡 메시지 나에게 보내기 파이썬을 통해 키워드 챗봇을 만들었다. 텔레그램이 아닌 카카오톡으로 만들다보니 카카오 인증이 필요했다. 인증은 json으로 처리했는데 처음해봐서 구글링이

liwonfather.tistory.com

이전 포스팅에선 파이썬으로 카카오톡 메시지를 보내는 방법에 대해 알아봤었다.

하지만 해당 포스팅에서도 명시했던것처럼

카카오톡 나에게 메세지 보내기는 알림 기능이 활성화 되지 않아 불편했다.

거기에 토큰값도 주기적으로 갱신을 해야하는 번거로움도 있었다.

그러기에 오늘 가입하기가 귀찮아 미루고 미루던 텔레그램을 가입하고

파이썬으로 텔레그램 메시지를 보내는 방법에 대해 포스팅해보고자 한다.


텔레그램 다운 및 가입 절차는 생략하도록 한다.

텔레그램을 실행해 먼저 botFather와 대화를 해야한다.

botFather로 검색했을 경우 몇몇개의 bot이 확인되나

가장 상단의 체크표시가 되어있는 botFather와 대화를 해야한다.


botFather와 대화를 시작하면

대화 입력창에 /newbot 명령어를 입력하자.

위의 명령어는 새로운 텔레그램 봇을 만드는 명령어이다.


위의 사진상 빨간박스를 차례대로 설명하면

처음 박스 대화내용은 자신의 봇 이름을 입력한다.

봇 이름은 다른 사람들과 중복되어도 상관없다.

두번째 대화박스는 봇의 고유이름을 입력하는 부분인데

끝은 반드시 bot으로 끝나야하며 다른 사람들과 중복될 수 없다.

파랑박스 부분을 보면 이미 사용중인 이름이라며 거절당했다.

마지막 빨간박스 부분이 가장 중요한데

해당 봇의 토큰값이다.

우리는 이 토큰값을 이용해 파이썬으로 텔레그램 메세지를 전송할 것이다.


위의 과정까지 모두 잘 따라왔다면

방금 생성한 봇을 검색을 통해 찾을 수 있다.

검색할 때는 봇의 이름이 아닌 고유이름으로 검색을 해야

중복을 피해 쉽게 검색할 수 있다.

생성했던 봇을 찾았으면 아무대화나 나누어 채팅을 활성화해야 한다.

어차피 봇이라 지금 상태에서는 대답도 없을테지만

아무말이라도 대화를 남겨 활성화시키자.



그 뒤 아래 URL에 들어가 채팅 ID를 확인해야 한다.

URL : https://api.telegram.org/bot자신의토근값/getUpdates

위의 이미지상 아래의 작은 빨간박스 부분이 자신의 채팅 ID이다.


import telegram

telegram_token = "토큰 값"
telegram_chat_id = 채팅 ID
bot = telegram.Bot(token=telegram_token)
bot.sendMessage(chat_id=telegram_chat_id, text="test")

이제 파이썬 코드를 통해 메시지를 보낼 수 있다.

먼저 python-telegram-bot 모듈을 설치하자.

pip install python-telegram-bot 명령어로 설치할 수 있다.

위의 코드에서 토큰 값과, 채팅 ID를 자신이 확인한 값으로 변경해서 수행하자.

맨 마지막줄 코드의 text = "test" 이 부분에서 큰따옴표로 묶인 test 값이

텔레그램을 통해 전송될 메시지 부분이다.


카카오톡에 비하면 절차가 너무나도 간편하다.

작성자도 왜 시작을 카카오톡으로 했는지 후회하고 있다.

텔레그램 코드를 가지고 모듈화를 통해

기존에 카카오톡을 통해 알림을 받았던 코드들도 모두 수정해야겠다.

그럼 끝.



### 오류 대처법 ###

partially initialized module 'telegram' has no attribute 'bot'

위와 같은 패턴의 오류가 발생한다면 작성자가 알고있는 해결책은 2가지이다.

1. python-telegram-bot 모듈 재설치
pip uninstall python-telegram-bot telegram
pip install python-telegram-bot

2. 파일이름이 telegram.py는 아닌지 체크
작성자의 경우로 모듈명과 파이썬 파일명이 같으면 오류가 발생한다.

반응형