저번 시간에 이어서 이번에는 채널을 만들고 그곳에서 자동으로 시간마다 스케쥴로 발송하는 시스템을 만들어 보겠습니다.
2024.06.07 - [Programming] - ChatGPT로 텔레그램 챗봇 만들기 -1. 챗봇 코드 작성
텔레그램 채널 만들기
텔레그램 하단에 글쓰기를 누른 다음 텔레그램 채널을 생성해 줍니다.
메시지 중 3번째인 채널 만들기를 통해 텔레그램 채널을 만들어 줍니다.
텔레그램 채널을 만들 때 중요한 것은 이름인데요.
채널 명은 외부에서 보이는 채널이름이고 공개 링크가 이제 중요한데요. t.me 공개링크를 만들고 꼭 기억해야 합니다.
이 후 아래의 코드를 실행시켜 채널이름에서 채널 아이디를 불러옵니다.
import asyncio
from telegram import Bot, Update
async def main():
bot_token = '토큰'
bot = Bot(token=bot_token)
public_chat_name = "@채널이름01" # 공개 채팅 이름 앞에 @를 추가해야 할 수 있습니다.
message = await bot.send_message(chat_id=public_chat_name, text="안녕하세요!")
id_channel = message.chat_id
print(f"채널 아이디: {id_channel}")
# 메인 코루틴 실행
if __name__ == "__main__":
asyncio.run(main())
이것을 실행하면 채널 아이디를 알려줍니다.
이 채널에다가 봇이 매번 글을 올리게 되는데요.
이제 챗GPT에게 텔레그램 챗봇 코드 작성을 요청합니다.
실제 작성된 코드는 아래와 같습니다.
정말 따로 멀 하지 않아도 코드를 정말 잘 짜줍니다. 이코드를 통해서 채에 원하는 내용을 보낼 수 있습니다.
이렇게 간단한 알림 봇이 탄생되었습니다.
scedule이라는 코드를 통해서 매 10분마다 동작하게 함을 알 수 있습니다.
import requests
from bs4 import BeautifulSoup
from telegram import Bot
from telegram.ext import Updater
import schedule
import time
# 텔레그램 봇 토큰 및 채널 ID 설정
TELEGRAM_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
CHANNEL_ID = '@remake01'
# 텔레그램 봇 초기화
bot = Bot(token=TELEGRAM_TOKEN)
def get_latest_news():
url = "https://search.naver.com/search.naver?where=news&query=remake&sort=0"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
news_items = soup.select('.news .type01 li dl')
latest_news = []
for item in news_items[:3]: # 최근 뉴스 3개 선택
title = item.find('a').get_text()
link = item.find('a')['href']
source = item.find('span', class_='source').get_text()
latest_news.append(f"{title} - {source}\n{link}")
return latest_news
def send_news_to_telegram():
news = get_latest_news()
for item in news:
bot.send_message(chat_id=CHANNEL_ID, text=item)
# 10분마다 실행 스케줄 설정
schedule.every(10).minutes.do(send_news_to_telegram)
def run_scheduler():
while True:
schedule.run_pending()
time.sleep(1)
if __name__ == "__main__":
run_scheduler()
이렇게 간단하게 알림봇을 만들었는데요. 이외에도 chatGPT를 통해서 다양한 알림봇을 만들 수 있습니다.
'Programming' 카테고리의 다른 글
github 장애 발생 - No server is currently available to service your request. (0) | 2024.08.15 |
---|---|
아파치 SSL 인증서 갱신 방법 (0) | 2024.06.18 |
ChatGPT로 텔레그램 챗봇 만들기 -1. 챗봇 코드 작성 (0) | 2024.06.07 |
미드저니 구독 해지하는 방법 (0) | 2024.02.01 |
미드저니 유료 구독부터 기본 세팅하기 (0) | 2024.01.30 |