?>

Hard Copy World

HCW

Raspberry Pi

Home > Learning >

Raspberry Pi

텔레그램 CLI를 파이썬으로 제어하기 (PyTg)

페이지 정보

작성자 하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-04-16 13:47 조회4,885회 댓글2건

본문

 

WARNING!!! 텔레그램 CLI 가 v1.x 로 업데이트 되면서 가상 계정인 개인 봇과의 연동 기능이 추가되었습니다. 봇과 연동할 수 있도록 텔레그램 CLI 에서 외부 API를 제공합니다. 파이썬으로 텔레그램과 연동하고 싶다면 pyTelegramBotAPI 인터페이스를 사용하세요. 훨신 막강하고 다양한 응용이 가능해집니다. 아래 링크의 내용을 참고하세요.

http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_rpi&wr_id=8&page=1

 

 

(아래 내용은 구 버전의 텔레그램 CLI (v0.x) 에만 사용하길 권장합니다.)

지난 강좌에서 텔레그램 CLI를 Pexpect 라이브러리를 이용해서 제어하는 방법을 사용해봤습니다. 이 방법은 단점은 특정 메시지가 발생했을 때 이걸 감지해내기가 상당히 불편하다는 점입니다.

여기서 소개할 PyTg 라이브러리는 보다 파이썬 친화적이고 간편하게 텔레그램을 제어할 수 있도록 해줍니다. 단점도 몇 가지 있는데, 먼저 Telegram-CLI 를 PyTg 패치된 버전으로 설치해야 합니다. 그리고 2명 이상이 참여하는 챗 그룹을 만들어야만 합니다. 자기가 자신에게 보내는 메시지는 감지하지 못합니다.

 

 

PyTg 라이브러리 설치 

 

컴파일 및 구동에 필요한 패키지를 설치합니다.

  • sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make git-core

패치된 Telegram-Cli 부터 설치해야 합니다. 기존에 Telegram-Cli 를 설치하신 분은 tg 폴더명이 중복되지 않도록 별도의 폴더를 만들어 그 안에서 아래 작업을 진행하세요.

  • git clone https://github.com/efaisal/tg.git
  • cd tg
  • ./configure
  • make
  • ./telegram
    이전에 Telegram-Cli 인증받은 것과 같은 인증 작업을 해줍니다. Telegram-Cli 가 2개 설치된 꼴입니다.
    메시지가 가는지 확인해 주세요.

 

폰의 텔레그램을 실행해서 Pi_test 라는 챗 그룹을 만듭니다. Telegram-Cli 를 통해 챗 그룹을 만들 수도 있지만 불행히도 PyTg 패치된 Telegram-Cli 는 이 명령어를 지원하지 않습니다. 이전에 설치한 Telegram-Cli 를 지우시지 않으셨다면 아래와 같은 명령어로 테스트용 챗 그룹을 만듭니다.

  • > create_group_chat 챗그룹이름 사용자1 사용자2

 

이제 PyTg 라이브러리를 설치합니다.

  • git clone https://github.com/efaisal/pytg.git
  • cd pytg
  • sudo python setup.py install

폴더안에 example 폴더가 보이실겁니다. 이 폴더 안에 dump.py, pingbot.py 파일이 있습니다. dump.py 파일은 PyTg 라이브러리를 통해 핸들링 가능한 메시지가 발생할 때 마다 화면에 메시지 전체를 뿌려줍니다. pingbot.py 파일은 특정 챗 그룹에 발생하는 메시지를 감시하다가 ping 메시지가 오면 pong 으로 응답해줍니다. 폰에서 특정 챗 그룹을 연 뒤 ping 이라고 메시지 넣으면 자동으로 pong 이라고 뜹니다. 그리고 quit 이라고 메시지를 넣으면 라즈베리 파이에서 실행중인 pingbot.py 프로세스를 종료합니다.

이 예제를 잘 응용하면 여러가지 재밌는 서비스를 만드실 수 있습니다.

참고자료 : 

 

 


하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물

모든 전통이 한 때는 오해를 면치 못했다. 마찬가지로 모든 아이디어는 한 때는 비웃음을 면치 못했다. -홀브룩 잭슨 ::::: 느닷없이 떠오르는 생각이 가장 귀중한 것이며, 보관해야할 가치가 있는 것이다. -베이컨 ::::: 미리 숙고하면 힘든 일도 그저 실행에 옮기는 순간 쉬워진다. - 로버트 M. 피어식

추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

sknam님의 댓글

sknam 이름으로 검색 작성일

github에서 내려받아지질 않아요. Id passwd넣으라고 안오고 통과가 안되네요.