텔래그램 봇을 이용해서 알림을 만들어 보자
왜
- 라즈베리파이에서 20초 정도에 한번씩 DI 값을 읽어서 서버로 전송 한다. 가끔 라즈베리파이의 와이파이 연결이 끊겨서 동작 안할때가 있어서 라즈베리파이 동작 알림을 만들고 있습니다.
우선 텔레그램 알림 봇 부터 설정
- 텔래그램에서 BotFather 친구 추가
- 시작 버튼을 누른 후
- 설명서에 나온 /newbot 클릭 또는 명령어 실행
- 영어를 읽으면서 봇 이름 입력 하면 됩니다.
- 대략 xxx_bot -> xxyy_bot 이런식으로 두번 입력
- 토큰이 발급 됩니다.
파이썬 라이브러리 설치
- pip install python_telegram_bot
- 혹시 cryptography 가 없다고 나오면
- pip install cryptography
- 업그레이드와 setuptools 버전등은 설치에 맞게 해야 합니다.
- c9 에서 작업 할때 setuptools 버전이 3.3 이라 설치가 안되어 폴더에서 직접 지우는 만행을
- pip에서 안되어 pip3 에서 테스트
- 테스트만 할거라 빨리 하고 싶어서 되는곳에서 진행
- 설치 버전은 아래와 같습니다.
- cryptography==2.4.1
- python_telegram_bot==11.1.0
봇을 만들기 완료
- 명령어로 동작 하는 방식이 기본적인 봇
- 위와 같은 코드를 작성하면 /start 를 입력하면 “I’m a bot, please talk to me!” 를 출력합니다.
- start 가 아닌 다른 명령어들을 추가해서 원하는 기능을 만들 수 있습니다.
알림봇이라 말하지만 그냥 텔레그램 메시지 보내기
- 다른곳과 살짝 달라서 아직 어떻게 해야 하는지 몰라서 막 만들었습니다.
- 아무리 봐도 너무 이상한 코드지만 사용자가 없을 때 동작 만 확인하기 좋은 코드
- 메시지에서 chat_id 를 찾아서 해당 id에 메시지를 보내는 샘플 입니다.
- set() 자료구조를 이용해서 동일한 id 를 필터링 하였습니다.
- 그냥 참고용 이에요