API활용하기/텔레그램 API

파이썬으로 텔레그램으로 메시지 보내기 - v2 채널 생성해 보내기

vmpo 2019. 10. 30. 23:25

 

파이썬으로 텔레그램 메시지 보내기 두번째 포스팅입니다.

 

1번 포스팅은 아래 URL 참고 부탁드립니다.

https://vmpo.tistory.com/85

 

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

파이썬으로 텔레그램 메시지를 보내보도록 하겠습니다. 사전준비 -텔레그램 앱 또는 pc버전 프로그램을 다운로드 받는다. 끝! -파이썬을 설치한다. 아래 URL을 참고해주세요. https://vmpo.tistory.com/34 [python..

vmpo.tistory.com

 

텔레그램에서는 카카오톡의 오픈/비밀 채팅방과 같은 '채널'이라는 개념이 있습니다.

채널을 새로 생성해 채널에 있는 사람들에게 메세지를 전달 할 수도 있습니다.

 

먼저 텔레그램에서 채널을 생성합니다.

PC버전 기준으로 진행하겠습니다.

 

 

공개채널로 해주고, t.me/ 뒤 url을 채워줍니다. 뒤 url은 chatbot id가 됩니다.

t.me/여기가chatid값임

 

채널이 생성되었습니다.

 

그럼 이제 기존에 만들었던 텔레그램 챗봇과 연결해줍니다.

연결은 간단합니다. 해당 채널에 관리자에 추가해주면 됩니다.

 

코코딩테스트  <- 이 영역을 눌러 주면 아래와 같이 채널 편집 화면이 출력됩니다.

참가자1명

 

위 셋팅 아이콘을 눌러주고, 채널관리로 들어갑니다.

 

 

관리자를 눌러줍니다.

 

 

관리자를 추가해보겠습니다.

앞서 만들었던 GGcodingBot을 추가해줍니다.

 

확인을 눌러줍니다.

 

관리자가 2명이 되었네요.

그럼 이제 GGcodingbot으로 채널에 메시지를 날려보겠습니다.

 

챗봇 아이디를 까먹었다면, 다시 환경 탭->채널종류 -> 링크에서 t.me/ 뒤 내용을 확인해줍니다.

이 샘플에서는 (vmpomsgtest)

 

 

아래 코드를 실행해줍니다.

토큰 값은 각자의 챗봇의 토큰 값을 넣어주면됩니다.

chat_id 는 @ + t.me/ 뒤 텍스트 값을 넣어줍니다.

 

이 샘플에서는  @vmpomsgtest

import telegram

telgm_token = '105957:AAEH3cETdpXWyoKpLn3k'
bot = telegram.Bot(token = telgm_token)
bot.sendMessage(chat_id = '@vmpomsgtest', text="안녕하세요 코코딩 테스트 챗봇입니다.")
bot.sendMessage(chat_id = '@vmpomsgtest', text="안녕하세요 코코딩 테스트 챗봇이 날리는 두 번째 메시지입니다.")

print('성공')

 

실행해보면 아래와 같이 메시지가 정상적으로 전송 된 것을 알 수 있습니다.

 

 

 

현재 채널은 공개상태입니다. 비공개로 설정하고 메시지를 전송해 보겠습니다.

 

비공개로 설정하면 뒤 내용이 조금 달라집니다. 해당 내용으로 chatid를 설정할 경우 발송이 되지 않는데요.

이럴 경우 실제 전송되는 json object의 chatid를 확인해야 합니다.

 

 

아래 url을 호출해야합니다. 아래 URL은 실제 파이썬에서는 감싸져 있지만 함수 내부에서 메시지 발송시 호출되는 API URL입니다.

 

아래 빨간색으로 된 부분만 개인별로 수정해서 호출해 주도록 합니다.

다른 내용은 그대로 두어야 합니다.

https://api.telegram.org/bot토큰값/sendMessage?chat_id=@채널이름(t.me/뒤 텍스트)&text=안녕

 

저와 같은 경우 아래와 같이 되겠네요.

https://api.telegram.org/bot10592:AAEH3cETyoKpLnAv-vFjILevY3k/sendMessage?chat_id=@vmpomsgtest&text=안녕

 

호출해서 텔레그램으로 정상적으로 메시지가 발송 되었다면.

아래와 같은 결과를 확인 할 수 있습니다.

여기서 chat id의 -1001221832935 값을 확인해줍니다.  공개/비공개 상관없이 사용되는 chat id값이 됩니다.

 

그럼 비공개로 설정 한 후 이 값을 넣어 호출 해보도록 하겠습니다.

 

 

아래 코드를 실행해 줍니다.

토큰 값은 개별적으로 입력해주세요.

import telegram

telgm_token = '10597:AAEH3cETdpXWLevYF6ze3k'
bot = telegram.Bot(token = telgm_token)
bot.sendMessage(chat_id = '-1001221832935', text="안녕하세요 코코딩 테스트 챗봇입니다.")
bot.sendMessage(chat_id = '-1001221832935', text="안녕하세요 코코딩 테스트 챗봇이 날리는 두 번째 메시지입니다.")

print('성공')

 

비공개 방에서도 정상적으로 호출되는 것을 확인 할 수 있습니다.

 

 채널에 초대해 원하는 내용을 챗봇을 통해 공유할 수 있게 되었습니다.

LIST