- Today
- Total
Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- selenium
- 프로그래밍
- 코딩시험
- 셀레니움
- 파이썬활용
- 알고리즘 강좌
- 알고리즘
- c언어
- Crawling
- 코딩문제
- 파이썬 입문
- gdrive
- 자료구조 강의
- 대학시험
- python 중간고사
- 쉬운 파이썬
- 기말시험
- 파이썬
- 자료구조
- 파이썬 알고리즘
- 채용문제
- 파이썬 강좌
- 파이썬 강의
- 알고리즘 강의
- 파이썬3
- 면접 파이썬
- 파이썬 자료구조
- python data structure
- 중간시험
- 크롤링
Notice
반원 블로그
파이썬 텔레그램 쓰기 - 1. Bot 계정 생성 및 echo 예제 본문
참고
https://telepot.readthedocs.io/en/latest/
준비 절차
모바일 환경(폰)에서 계정 생성 - 연락처가 필요하기 때문
Bot Father검색
다음 과정 입력
봇 생성 명령어 : /newbot 봇을 관리할 이름 : python_test1_bot 봇이 가질 유저 이름(끝이 bot으로 끝나야됨) :python_test1_bot
이후 나오는 http api access token을 저장해둠
pip install telepot
기본 테스트 코드 작성
import telepot TOKEN = '토큰값'
기본 예제 - ECHO 기능
- 참고 : https://telepot.readthedocs.io/en/latest/
- message_loop
- run_forever : 지속적 동작 여부
- telepot.glance(msg, long=True) : flavor='chat'으로 디폴트 되있으며, long 입력인자로 false(초기값)이면 앞의 3개만, 있으면 5개가 리턴된다. 참고
import telepot
from telepot.loop import MessageLoop
TOKEN = '토큰값'
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
print(content_type, chat_type, chat_id, msg_date, msg_id)
print(msg)
print('-'*36)
if content_type == 'text':
bot.sendMessage(chat_id, '(Echo)'+msg['text'])
bot = telepot.Bot(TOKEN)
# MessageLoop(bot, handle).run_as_thread()
bot.message_loop(handle,run_forever=True)
print ('Listening ...')
(추가) telepot에서 추천하는 방식으로 수정
import telepot
from telepot.loop import MessageLoop
TOKEN ="토큰값"
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True) #long으로 받으면 상세하게 데이터가 옴 https://telepot.readthedocs.io/en/latest/reference.html#telepot.glance
print(content_type, chat_type, chat_id, msg_date, msg_id)
print(msg)
print('-'*36)
if content_type == 'text':
bot.sendMessage(chat_id, '(Echo)\n'+msg['text'])
bot = telepot.Bot(TOKEN)
MessageLoop(bot,handle).run_forever() #메인스레드에서 수행
# MessageLoop(bot,handle).run_as_thread() #서브스레드를 생성하여 수행
print ('Listening ...')
import time
while True:
time.sleep(10)
간단 문서 보내는 예제
- 다음 포스팅에 없는 send함수의 경우는 sendDocument로 처리(대부분 다 보내진다.)_
import telepot
from telepot.loop import MessageLoop
TOKEN ="토큰값"
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True) #long으로 받으면 상세하게 데이터가 옴 https://telepot.readthedocs.io/en/latest/reference.html#telepot.glance
print(content_type, chat_type, chat_id, msg_date, msg_id)
print(msg)
print('-'*36)
if content_type == 'text':
if msg['text'] == "/보내":
filepath = './보내.txt'
bot.sendMessage(chat_id, '알겠다 기다려 오래걸릴예정')
bot.sendDocument(chat_id,open(filepath,'rb'))
elif msg['text'] == "/사진보내":
filepath = './사진보내.png'
bot.sendMessage(chat_id, '알겠다 기다려 오래걸릴예정')
bot.sendDocument(chat_id, open(filepath, 'rb')) #모든 파일형식 가능
bot.sendPhoto(chat_id, open(filepath, 'rb')) #사진만 가능
else:
bot.sendMessage(chat_id, '(Echo)\n'+msg['text'])
bot = telepot.Bot(TOKEN)
MessageLoop(bot,handle).run_forever() #메인스레드에서 수행
# MessageLoop(bot,handle).run_as_thread() #서브스레드를 생성하여 수행
print ('Listening ...')
while True:
pass
'2018~ > Python Skill Up' 카테고리의 다른 글
파이썬 텔레그램 쓰기 - 2 예약 명령어 구조 만들기(파일 관리) (0) | 2019.09.22 |
---|---|
9. Naver Developer api(3) - Papago NMT API, 인공신경망 번역 (0) | 2019.09.06 |
9. Naver Developer api(2) - Clova Face Recognition, 얼굴 인식 API (0) | 2019.09.06 |
9. Naver Developer api (1) - 개발자 계정 등록 (0) | 2019.09.06 |
8. pillow : 이미지 패키지(2) - ImageGrab 모듈과 Image 클래스 (0) | 2019.09.06 |
8. pillow : 이미지 패키지(1) - info, crop, thumbnail, resize (0) | 2019.09.06 |
7. pyisntaller - 파이썬 파일을 실행파일로 변환(py to exe) (0) | 2019.09.06 |
6. requests 모듈 - REST API 사용법, curl을 python requests로 변환방법 (0) | 2019.09.06 |
Comments