본문 바로가기
Engineering/Python

[python] google sheet 정보를 정해진 시간에 telegram으로 보내기

by SPICA910 2022. 12. 25.
반응형

오늘도 즐거운 파이썬 생활~

 

파이썬과 텔레그램의 조합으로 필요한 정보를 모으는 법을 계속 찾아보고 있었습니다. 

Vikas Jha라는 유투버가 만들어 놓은 프로그램이 활용성이 높아보여서 소개해보고자 합니다. 

 

기본적인 골격은 google sheet에서 시간을 지정해 놓으면 해당 시간에 텔레그램으로 메세지를 보내주는 것입니다. 

이게 유용한 이유는 구글 시트의 강력한 finanace 기능등과 조합하면 조금더 쉽게 메세지 알림을 관리하기 쉬울것으로 보이기 때문입니다. 

 

 

* 방문해서 좋아요 한번씩 눌러주시면 좋을듯 합니다. ^^

https://www.youtube.com/watch?v=eoz-3lv8W2w 

 

직접 따라해 보겠습니다. 

1. 구글 Spreadsheet에 'telegram alarm'이라는 파일을 생성하고 message 내용과 시간을 지정할수 있도록 합니다. 

2. 구글 spreadsheet를 쓰기 위해 'telegram alarm' 파일을 공유 시켜줍니다. 

    - 화면 우측 상단 '공유' 누르기  --> 링크 복사 

  예시 : https://docs.google.com/spreadsheets/d/1T14UCV5PlRDed4nx5gtNMr89oU8rt6CFKG65lc-IvMM/edit?usp=sharing 

 

3. 위에서 저장한 sheet ID에서 정작 필요한 부분은 가운데 부분인 파일 이름입니다. 

https://docs.google.com/spreadsheets/d/1T14UCV5PlRDed4nx5gtNMr89oU8rt6CFKG65lc-IvMM/edit?usp=sharing

--> 해당 부분만 분리해서 보관합니다. 

    1T14UCV5PlRDed4nx5gtNMr89oU8rt6CFKG65lc-IvMM

 

4. 저는 아직 별도의 서버를 구입해서 사용하는것이 아니므로  구름 IDE를 사용해서 진행해보겠습니다. 

- 유튜버가 올린 원소스를 에러 수정하여 공유 합니다. 

import pandas as pd
import requests
import time


while True:
    sheet_id = "생성한 시트 아이디"
    
    url = f"https://docs.google.com/spreadsheets/d/{sheet_id}/gviz/tq?tqx=out:csv"

    df = pd.read_csv(url)
    df["Schedule Datetime"] = pd.to_datetime(df["Schedule Datetime"])
    df

    previous_minute = pd.datetime.now() + pd.Timedelta(minutes=-1)
    print(type(previous_minute))
    current_time = pd.datetime.now()
    print(type(current_time))
    df = df[(df["Schedule Datetime"] > previous_minute) &  (df["Schedule Datetime"]  < current_time)] 
    df


    def send_message(row):
        bot_id = "텔레그램 token"
        chat_id = "채팅 ID"
        message = row[0]
        url = f"https://api.telegram.org/bot{bot_id}/sendMessage?chat_id={chat_id}&text={message}"

        return requests.get(url).json()

    if not df.empty:
        df['status'] = df.apply(send_message, axis=1)
    time.sleep(60)
    df

- 한글로 써있는 부분은 각자에 맞게 입력해주셔야 합니다. 

  참고로 텔레그램 bot 생성을 안하셨다면 아래 링크를 보고 해주세요. 

https://spica910.tistory.com/172

 

[python] 텔레그램 bot 만들기

편리한 python 생활을 위해 BOT을 만들기로 했습니다. BOT(봇)이란 특정한 작업을 수행하기 위해서 만들어놓은 응용소프트웨어이며 채팅 프로그램을 통해 대화형으로 동작을 시킬수 있습니다. 오늘

spica910.tistory.com

- 구름 IDE를 사용한다면 '항상 켜두기' 기능을 이용하세요. 스프레드시트만 수정해서 알림을 만들수 있습니다. 

https://spica910.tistory.com/185

 

[python] 무료 서버 사용 (Feat. 구름 IDE 항상켜두기)

개인 프로젝트를 하면서 필요한게 점점 많아지고 재미있어지네요. 오늘은 그간 만들었던 프로그램을 돌릴 서버가 필요하다고 느껴졌습니다. 개인 프로젝트는 환율 정보를 텔레그램으로 정기적

spica910.tistory.com

 

 

 

 

 

 

 

다른 방법을 제시해주시는 분도 있으니 참조하세요. 

 

https://medium.com/analytics-vidhya/python-telegram-bot-with-scheduled-tasks-932edd61c534

 

Python Telegram Bot with Scheduled Tasks

Hello. In this tutorial, we will learn how to create a simple echo bot in python with some Scheduled tasks. Let’s begin!

medium.com

 

- 매일 자동으로 업데이트를 하기 위해서는 google sheet의 설정을 손봐야 합니다. 아래 링크 참조하세요.

https://spica910.tistory.com/225

 

[Google Spreadsheet] 매일 자동으로 업데이트 하기

구글 스프레드시트는 무료 엑셀 기능을 가진 강력한 툴입니다. 특히 구글에서 지원하는 googlefinance 기능은 매력적이더군요. ^^ 그래서 웹 스크래핑을 스프레드시트를 통해서 간단하게 수집할수

spica910.tistory.com

 

반응형

댓글