AWS Lambda Telegram Bot 구축(3/3) - 봇 연동

denver·2022년 2월 10일
1

Telegram Bot 만들기

목록 보기
3/3

람다에 텔레그램 봇 연동 코드를 넣고 텔레그램 채팅방에서
키워드에 반응하여 자동 봇 채팅 기능을 만들어보자!

람다 코드 Deploy 하기

import telegram
import telebot
import json
import os
import requests

def lambda_handler(event, context):
    
    '''
    메세지 외 다른 유형의 웹훅을 받을 때,
    해당 업데이트 지점에서 다음 update_id로 못 넘어가는
    이슈가 있어서 마지막에 전달받은 웹훅
    시점으로 update_id 초기화 후, 웹훅 재설정
    '''
    headers = {'Content-Type':'application/json; charset=utf-8'}
    drop_pending_updates = requests.post('https://api.telegram.org/bot{0}/setwebhook?url=https://[Api geteway 고유값].execute-api.ap-northeast-2.amazonaws.com/mammothTelegramBot&drop_pending_updates=true'.format(os.environ['TOKEN']), headers)
    
    bot = telegram.Bot(token=os.environ['TOKEN'])
    json_header_data = json.loads(event['body'])
    json_chat_id_data = json_header_data['message']['chat']['id']
    json_keyword_data = json_header_data['message']['text']
    
    # '@'로 왜 split을 하느냐? PC 텔레그램에서 봇이 입력한 내용을 키워드로 사용하고 싶어서
    # 클릭을 하게되면 /hello@[bot_name] 이런식으로 달려서 오기 때문에
    # '@'로 우선 분류를 하고 시작한다!!
    json_keyword_data_split = json_keyword_data.split(sep='@', maxsplit=1)[0]
    
    if json_keyword_data_split in ['/hello']:
        json_keyword_select_data = "Welcome!!!"
        bot.sendMessage(chat_id=json_chat_id_data, text='{0}'.format(json_keyword_select_data), parse_mode='Markdown')


위 코드를 삽입 후, 'Deploy' 클릭~

봇이 들어가있는 그룹방에 웹훅 받아보기

'/hello'라고 입력을 하면 우리가 위에서 등록했던 "Welcome!!!"이라고
봇이 자동 채팅으로 응답해준다!!

넘어오는 데이터 확인은 AWS CloudWatch로 보자

  1. 여기 리스트에서 람다 함수명으로 등록된 로그 그룹을 찾아서 들어간다!!
  1. 람다에서 'Deploy'를 할 때마다 새로운 로그 스트림이 생긴다.
    제일 최근 로그 스트림을 들어가보자!!
  1. 텔레그램 방에서 내가 입력한 키워드를 확인해보자!!
# 내가 입력한 키워드는 람다 코드에 이 부분을 추가 해주어야 한다!!
print(f"{json_keyword_data_split}")


짜잔~! 아까 텔레그램 방에서 입력한 키워드 값이 넘어온 것을 확인 할 수 있다!!

profile
Python, AWS, Node, PHP, Git Developer

0개의 댓글