공학속으로/python

[python] 텔레그램에 메세지 및 사진 보내기

더월드 2022. 4. 26.

텔레그램 봇 준비하기

 

1. BotFather를 검색하고, 선택하여 방에 들어갑니다.

 

 

2. "/newbot"을 입력하면 bot 이름을 입력하라고 나옵니다.

3. 'Bot'으로 끝나거나 '_bot'으로 끝나는 봇 이름을 입력하세요.

-발급된 HTTP API 키를 복사합니다.

 

 

파이썬 텔레그램 방 ID 구하기

1. telegram 라이브러리를 추가합니다.

-'pip install python-telegram-bot --upgrade' 명령어를 사용하여 라이브러리를 추가합니다.

pip install python-telegram-bot --upgrade

 

2. telegram id 을 가져옵니다.

-우선 생성한 봇 방에서 시작 버튼을 누릅니다.

-id 값을 가져오기 위해서는 먼저 메시지를 작성합니다.

-그리고 아래와 같은 코드를 이용하여 'id'값을 가져옵니다.

import telegram
import asyncio

chat_token = "5305-----------------UFN3ri5x2DCAhoHCsbE"

#--------------------------
# id 확인
#--------------------------
def id_check():
    url = f"https://api.telegram.org/bot{chat_token}/getUpdates"
    
    response = requests.get(url)
    data = response.json()
    
    try:
        last_msg = data["result"][-1]["message"]["text"]
        get_id = data["result"][-1]["message"]["from"]["id"]
    
        print(f"마지막 메시지 : {last_msg}")
        print(f"Chat ID : {get_id}")
    except:
        print("봇에게 채팅을 보낸 후 다시 시도하세요.")

#--------------------------
# Main
#--------------------------
if __name__ == "__main__":
    id_check()

 

3. 위 파이썬 코드 실행 결과

- 결과 값이 나오지 않아도 당황하지 마시고, 텔레그램 생성한 봇방에 메세지를 몇 번 입력하면서 실행하면 원하는 id값을 획득할 수 있습니다.

 

생성한 봇방에 메세지 입력

 

 

 

파이썬 메세지 보내기

1. 텔레그램 메시지 보내기 파이썬 코드

- 알고 있는 텔레그램 토큰값과, id를 이용하여 이제 메시지를 보낼 수 있습니다.

- bot.sendMessage(chat_id = 'id', text='보낼 메시지') 형태를 사용하면 됩니다.

- 코드는 아래와 같이 간단합니다.

import telegram
import asyncio

#텔레그램 토큰
chat_token = "530595497---------DCAhoHCsbE"
#텔레그램 id
bot_id='95500033'

#--------------------------
# 메세지 보내기
#--------------------------
async def send_msg(text):
    bot = telegram.Bot(token = chat_token)
    await bot.send_message(chat_id = bot_id, text=text)

#--------------------------
# Main
#--------------------------
if __name__ == "__main__":
    await send_msg('파이썬으로 보낸 메시지:안녕하세요')

 

2. 파이썬으로 텔레그램 메시지 보내기 결과

- 위 파이썬 코드를 실행하면 아래 그림처럼 보낸 '파이썬으로 보낸 메시지:안녕하세요'가 정상적으로 텔레그램 봇방에 들어온것을 확인할 수 있습니다.

 

 

파이썬 사진 & 메시지 보내기

1. 파이썬으로 텔레그램 사진 보내기 코드

- 이번에는 메세지와 사진 파일을 같이 보내 볼께요.

- bot.send_photo(chat_id = 'id', photo=open("사진파일", 'rb')) 형태를 사용하면 됩니다.

- 전체 코드는 아래와 같습니다.

import telegram

# 봇 토큰
chat_token = "530595-----------CAhoHCsbE"
# 봇 id
bot_id='955-----33'

#--------------------------
# 메세지 보내기
#--------------------------
async def send_msg(text):
    bot = telegram.Bot(token = chat_token)
    await bot.send_message(chat_id = bot_id, text=text)

#--------------------------
# 사진 보내기
#--------------------------
async def send_img(send_image):
    bot = telegram.Bot(token = chat_token)
    await bot.send_photo(chat_id = bot_id, photo=open(send_image, 'rb'))

#--------------------------
# Main
#--------------------------
if __name__ == "__main__":
	await send_msg('이번에는 그림파일을 보내볼께요^^')
	await send_img('E:\\Work\\test_image.jpg')

 

2. 파이썬으로 텔레그램 사진 보내기 실행 결과

- 코드 실행 결과 입니다. 봇방에서 보니 정상적으로 메시지와 사진파일이 전송됨을 확인할 수 있습니다. ^^

 

댓글

💲 추천 글