Cloudflare Workers에 Telegram Bot 배포: 단계별 가이드

PHPz
풀어 주다: 2024-08-19 18:32:03
원래의
1019명이 탐색했습니다.

Deploying Your Telegram Bots on Cloudflare Workers: A Step-by-Step Guide

번거로운 서버 관리 없이 텔레그램 봇을 구축할 준비가 되셨나요? Cloudflare Workers를 사용하면 모든 어려운 작업을 처리하는 강력하고 확장 가능한 플랫폼을 활용하여 몇 분 안에 봇을 배포할 수 있습니다. 이 가이드에서는 TypeScript의 간단하고 따라하기 쉬운 템플릿을 사용하여 개발 환경 설정부터 완전한 기능을 갖춘 Telegram 봇 배포까지 전체 프로세스를 안내합니다. 자세히 알아보고 봇을 작동시켜 보세요.

? Telegram 봇을 위해 Cloudflare 작업자를 선택하는 이유는 무엇입니까?

Cloudflare Workers는 개발자가 사용자와 가까운 엣지에서 대기 시간을 최소화하면서 JavaScript, TypeScript 또는 Python 코드를 실행할 수 있는 서버리스 플랫폼입니다. 이 플랫폼을 활용하면 매우 빠르며 확장성이 뛰어난 Telegram 봇을 배포할 수 있습니다. 서버를 관리하거나 확장을 처리하거나 복잡한 인프라를 처리할 필요가 없습니다. - Cloudflare가 모든 것을 처리해 드립니다.

? 봇 구축을 위한 단계별 가이드

이제 프로세스를 살펴보겠습니다.

?새 작업자 프로젝트 만들기

  1. 개발 환경 설정

구축을 시작하기 전에 작업자 관리를 위한 Cloudflare의 명령줄 도구인 Wrangler를 설치해야 합니다.

npm install wrangler
로그인 후 복사

팁: npm이 설치되어 있지 않은 경우 nodejs.org에서 Node.js를 다운로드하여 설치하면 쉽게 얻을 수 있습니다.

  1. 텔레그램 봇 템플릿을 사용하여 새 작업자 생성

Wrangler가 설정되면 작업자 파일을 저장할 디렉터리로 이동합니다. 작업자를 생성하려면 다음 명령을 실행하십시오.

npm create cloudflare@latest MY_WORKER_NAME
로그인 후 복사

MY_WORKER_NAME을 원하는 작업자 이름으로 바꾸세요. Wrangler를 처음 사용하는 경우 Cloudflare 계정에 연결하고 브라우저 창을 통해 인증하라는 메시지가 표시됩니다. 지침을 따르세요.

템플릿을 묻는 메시지가 나타나면 GitHub 저장소의 템플릿을 선택하고 다음을 입력합니다.

https://github.com/m-sarabi/cloudflare-telegram-bot
로그인 후 복사

그런 다음 질문이 나타나면 Typescript를 선택하세요.

이 저장소로 이동하여 별점 ⭐️을 주세요.

  1. Git 초기화 및 배포 건너뛰기

설정 중에 Git을 버전 제어에 사용할지, 작업자를 즉시 ​​배포할지 묻는 메시지가 표시됩니다. 두 가지 모두 아니요를 선택하고 모든 것이 구성될 때까지 보류하는 것이 좋습니다.

다음 메시지가 표시됩니다: SUCCESS 애플리케이션이 성공적으로 생성되었습니다!

? @BotFather를 사용하여 전보 봇 설정

  1. /newbot 명령을 사용하여 봇을 생성하세요.
  2. 안내에 따라 제공된 API 토큰을 기록해 두세요.

다음으로 프로젝트 디렉터리 내의 wrangler.toml 파일에 환경 변수를 설정하겠습니다. 따라서 파일에 다음 줄을 추가하세요.

[vars]
SECRET = "<SECRET>"
TOKEN = "<API_TOKEN>"
로그인 후 복사
  • SECRET: 요청이 설정된 웹훅에서 나오도록 보장하는 임의의 토큰을 사용합니다. A-Z, a-z, 0-9, _ 및 -를 포함하여 1~256자일 수 있습니다.
  • API_TOKEN: @BotFather로부터 받은 API 토큰을 사용하세요.

이러한 변수를 설정한 후 프로젝트 디렉터리에서 다음 명령을 실행하세요.

npm run cf-typegen
로그인 후 복사

이 명령은 새로 설정된 변수를 반영하여 Worker-configuration.d.ts 파일을 다시 생성합니다.

? 봇 로직 작성

이제 재미있는 부분  - 봇 코딩에 들어가 보겠습니다! 이 예에서는 다음을 만듭니다.

시나리오: 사용자가 /start 명령을 보내면 봇은 버튼이 있는 메시지를 표시합니다. 버튼을 누르면 봇이 해당 버튼을 제거하고 후속 메시지를 보냅니다.

/start 명령 처리

모든 업데이트 핸들러 기능은 src/Telegram/handlers 디렉터리에 있습니다.

/start 명령에 메시지와 인라인 버튼으로 응답하는 것부터 시작하겠습니다. src/Telegram/handlers/handleMessage.ts를 다음과 같이 수정하세요:

import { tg } from '../lib/methods';

export async function handleMessage(message: tgTypes.Message) {
    const messageText = message.text;
    const chatId = message.chat.id;
    if (messageText === '/start') {
        await tg.sendMessage({
            text: 'Welcome to my bot! Press the button to accept my rules!',
            chat_id: chatId,
            reply_markup: {
                inline_keyboard: [
                    [{
                        text: 'I Accept',
                        callback_data: 'accept_rules'
                    }]
                ]
            }
        });
    }
}
로그인 후 복사

이 코드 조각은 tg.sendMessage 메소드를 사용하여 인라인 키보드 버튼이 있는 메시지를 보냅니다.

인라인 버튼 누름 처리

사용자가 인라인 버튼을 누르면 봇이 이 작업을 승인하기를 원합니다. src/Telegram/handlers/handleCallbackQuery.ts 수정:

import { tg } from '../lib/methods';

export async function handleCallbackQuery(callbackQuery: tgTypes.CallbackQuery) {
    const data = callbackQuery.data;
    const messageId = callbackQuery.message?.message_id;
    const chatId = callbackQuery.message?.chat.id;
    if (messageId && chatId) {
        if (data === 'accept_rules') {
            await tg.editMessageReplyMarkup({
                chat_id: chatId,
                message_id: messageId,
                reply_markup: undefined
            });
            await tg.sendMessage({
                chat_id: chatId,
                text: 'Thanks for accepting my rules.'
            });
        }
    }
}
로그인 후 복사

이 코드는 accept_rules 데이터 쿼리를 수신하고 일치 시 인라인 버튼을 제거하고 tg.editMessageReplyMarkup 메소드를 사용하여 후속 메시지를 보냅니다.

? 웹훅 등록

봇 로직이 준비되었으면 이제 작업자를 배포하고 웹후크를 통해 Telegram에 연결할 차례입니다.

  1. Wrangler 배포를 실행하여 작업자를 배포하세요.
  2. Cloudflare 대시보드로 이동하여 작업자 및 페이지를 선택합니다.
  3. 프로젝트 이름 옆에 있는 방문을 클릭하세요.
  4. URL 표시줄에 /registerWebhook(예: https://my-project.my-username.workers.dev/registerWebhook)을 추가하고 Enter 키를 누르세요. "웹훅 등록됨"이 보이면 제대로 된 것입니다!

배포 및 등록이 완료되면 Telegram에서 봇과 상호 작용할 수 있습니다. 시작(또는 전송/시작)을 클릭하여 시작하면 인라인 버튼이 있는 환영 메시지가 표시됩니다.

? 결론

Cloudflare Workers 덕분에 Telegram 봇을 구축하고 배포하는 것이 그 어느 때보다 쉬워졌습니다. 이 가이드를 따르면 서버리스 기술의 힘을 활용하여 확장 가능하고 빠르며 유지 관리도 쉬운 봇을 만들 수 있습니다.

개인용으로 간단한 봇을 구축하든 비즈니스를 위해 더 복잡한 것을 배포하든 이 템플릿은 견고한 기반을 제공합니다. 즐거운 코딩하세요!

? 리소스 및 추가 자료

  • Cloudflare Workers 문서
  • 텔레그램 봇 API
  • 템플릿용 GitHub 저장소

위 내용은 Cloudflare Workers에 Telegram Bot 배포: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!