반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART)나 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

<Telegram 패키지 관련 지난 글>

 

2021.04.03 - [파이썬 패키지/텔레그램(Telegram)] - [Python / Telegram] 파이썬으로 Telegram bot 사용하는 법 (feat. 공시정보알림 탤레그램 봇 소개)

2021.12.05 - [파이썬 패키지/텔레그램(Telegram)] - [Python/Telegram] 파이썬으로 텔레그램 채널 관리 봇(bot) 사용하는 법_1편.채널 추가 및 관리자로 봇 추가(코딩 ㄴㄴ)


 

오늘은 지난 시간 생성한 채널에 봇을 이용해서 메시지를 보내는 방법을 포스팅 해보겠습니다.

 

 

1. 대화방의 chat_id 파악하기

 

지난 시간 텔레그램 봇을 생성하고, 채널도 생성하셨다면 이제 코딩을 할 시간입니다.

 

시작 전에 살포시 import를 해주겠습니다.

 

# 만약 설치가 안되어 있으면 터미널 창에 pip install python-telegram-bot 입력
import telegram

 

봇이 채팅을 할 수 있도록 하려면 2가지 정보가 필요합니다.

 

 

1) 봇의 토큰 정보

 

가장 기본적으로 필요한 봇 토큰과 토큰을 이용해서 봇을 불러오는 코드입니다.

#토큰을 변수에 저장 (대략 이렇게 생겼음: '0123456789:AABBCCDDGdv1mI8zOcd9d7d7q87q9qQ')
bot_token = '각자 생성한 봇의 고유 토큰 입렵(타인에게 노출하지 말 것)'

#telegram 패키지의 Bot 함수를 사용하여 내가 만든 bot 객체화
bot = telegram.Bot(token = bot_token)

 

만약 봇의 토큰 정보를 모르시는 분들은 텔래그램 관련 지난 글 중, 첫번째 글을 참고해주세요.

 

 

2) chat_id

 

오늘의 핵심은 chat_id의 개념입니다.

 

텔레그램의 대화방은 각각 고유한 chat_id를 가지고 있습니다.

우리가 봇을 이용해서 메시지를 보내기 위해서는 대화방의 chat_id를 알아야만 하죠.

 

chat_id를 알기 위해서는 일단 대화방에서 우리가 아무말이나 입력해서 전송해야합니다.

 

우선 여러분들이 만드신 봇(저의 경우엔 DART)의 대화방에 들어가셔서 아무말이나 입력해보세요.

 

그런 후에 아래의 코드를 실행합니다. (물론 위의 코드들이 선행되어야 합니다)

 

# bot과의 채팅 정보 및 메세지 업데이트
updates = bot.getUpdates()

# updates에 들어있는 내용 하나씩 꺼내어 출력
for i in updates :
    print(i)
    print('\n')

 

출력 결과는 이렇게 생겼습니다. 아주 길다란 딕셔너리 형태입니다. 

{'message': {'photo': [], 'chat': {'first_name': 'Sangwoo', 'type': 'private', 'id': 1516137537}, 'entities': [], 'channel_chat_created': False, 'new_chat_members': [], 'caption_entities': [], 'message_id': 255, 'new_chat_photo': [], 'delete_chat_photo': False, 'text': '여기는 봇과의 대화방', 'date': 1638625002, 'group_chat_created': False, 'supergroup_chat_created': False, 'from': {'first_name': 'Sangwoo', 'is_bot': False, 'language_code': 'ko', 'id': 1516137537}}, 'update_id': 899725563}

 

이걸 정리해서 보면 아래와 같은 구조를 갖고 있어요. 중요하게 볼 부분은 바로 chat 안의 id입니다.

저기 보이는 숫자가 제 봇 채팅방의 고유한 id인 것입니다. (단, 봇 토큰이 없으면 저 아이디를 알아도 채팅을 보낼 권한이 없답니다.)

 

참고로 type은 private, 즉 개인톡방입니다. 다음에 배울 채널 대화방은 channel이라고 나와요.

봇 채팅방의 chat_id

 

동일하게 여러분들이 지난 시간 만드신 채널에도 아무 채팅이나 전송한 후에 같은 코드를 실행하시면 아래와 같은 결과를 얻으실 수 있습니다.

채널 채팅방의 chat_id

 

2. 봇으로 메시지 보내기

 

여기까지 하셨으면 메시지를 보내는 방법은 너무나도 간단합니다.

 

# 위에서 파악한 코딩유치원 채널 id
chat_id = '-1001415675502'

#위에서 얻은 chat id로 bot이 메세지를 보냄.
bot.sendMessage(chat_id = chat_id, text="봇으로 보내는 메시지")

 

첫 메시지가 제가 직접 입력한 것이고, 두 번째 메시지가 위의 코드로 전송한 메시지 입니다. 

 

이렇게 봇으로 메시지를 보내는 방법을 이용하면 아래와 같은 프로젝트도 가능하답니다.

 

2021.04.05 - [파이썬 패키지/텔레그램(Telegram)] - [Python/Telegram] 원하는 주제의 네이버 뉴스 텔레그램으로 5분마다 전송 받기

 

[Python/Telegram] 원하는 주제의 네이버 뉴스 텔레그램으로 5분마다 전송 받기

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다. 코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도

coding-kindergarten.tistory.com

 

 

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART)나 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 


 

오늘은 텔레그램 채널을 생성하고 지난 시간에 생성했던 자신만의 텔레그램 봇을 관리자로 추가하는 방법과 그렇게 생성한 채널에 봇을 이용해서 글, 사진, 링크 등을 보내는 방법을 포스팅 해보겠습니다.

 

저의 경우엔 실시간으로 정보를 받는 것을 목적으로 했기에 스마트폰에 텔레그램 어플을 설치해서 사용했습니다.

(사용해보진 않았지만 컴카톡처럼 컴퓨터용 텔레그램 앱이 있다고 더라구요)

 

1. 채널 생성하는 법

 

1) 텔레그램 채널 목록창에서 우측 하단의 연필 모양의 버튼을 클릭합니다.

 

2) 클릭하시면 아래와 같은 화면이 나올텐데, 채널 만들기를 클릭해주세요.

    (연필 모양을 클릭했을 때, 연락처 동기화에 대한 팝업창이 뜨는데 저는 하지 않았습니다)

 

3) 채널명과 채널 설명을 원하시는데로 작성하시고 우측 상단의 체크모양을 클릭해주세요.

 

4) 다음으로는 채널 공개/비공개를 선택하는 단계입니다. 

     이 부분은 추후에도 변경가능하므로 일단 비공개를 선택 후, 우측 상단의 체크 버튼을 눌러주세요.

 

5) 구독차를 추가하는 단계이지만, 그런거 없으니깐 바로 우측 하단의 버튼을 누르시고 다음단계로 넘어가주세요.

 

6) 채널이 완성되었습니다.

 


2. 채널 관리자로 봇을 추가하는 법

 

1) 방금 전 생성된 채널의 채널명이 있는 부분을 클릭하면 설정창이 출력됩니다.

 

 

출력된 설정창에서 관리자 탭을 클릭해주세요.

 

2) 관리자 추가 탭을 클릭해주세요.

 

3) 우측 상단의 검색 버튼을 클릭해주세요.

각자 생성하셨던 봇의 이름을 검색해서 선택해주세요.

(저는 DART 공시정보 프로젝트를 하던 중에 생성했던지라 이름이 DART입니다)

 

4) 관리자 권한 설정부분이 있으나, 어차피 제가 조정하는 봇이니 그냥 쿨하게 전권을 주고 우측상단의 체크버튼을 클릭해줍니다.

 

5) 여기까지 완료하셨으면 여러분들이 만드신 봇이 채널의 관리자가 된 것을 확인하실 수 있답니다.

 


사진으로 인해서 너무 글이 길어질 듯하여 2편에서 파이썬으로 방금 생성한 채널을 다루는 방법을 포스팅 하겠습니다.

반응형

+ Recent posts