Maison > interface Web > js tutoriel > Déployer vos robots Telegram sur Cloudflare Workers : un guide étape par étape

Déployer vos robots Telegram sur Cloudflare Workers : un guide étape par étape

PHPz
Libérer: 2024-08-19 18:32:03
original
1062 Les gens l'ont consulté

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

Êtes-vous prêt à créer un bot Telegram sans vous soucier de la gestion des serveurs ? Avec Cloudflare Workers, vous pouvez déployer votre bot en quelques minutes, en tirant parti d'une plateforme puissante et évolutive qui prend en charge tout le gros du travail. Dans ce guide, nous vous guiderons tout au long du processus - de la configuration de votre environnement de développement au déploiement d'un bot Telegram entièrement fonctionnel - le tout en utilisant un modèle simple et facile à suivre en TypeScript. Allons-y et rendons votre bot opérationnel.

? Pourquoi choisir Cloudflare Workers pour votre robot Telegram ?

Cloudflare Workers est une plateforme sans serveur qui permet aux développeurs d'exécuter du code JavaScript, TypeScript ou Python en périphérie, à proximité de vos utilisateurs, avec une latence minimale. En tirant parti de cette plate-forme, vous pouvez déployer un bot Telegram qui est non seulement ultra-rapide mais également hautement évolutif. Pas besoin de gérer des serveurs, de gérer la mise à l'échelle ou de gérer une infrastructure complexe - Cloudflare s'occupe de tout pour vous.

? Guide étape par étape pour créer votre bot

Plongeons maintenant dans le processus.

?Créer un nouveau projet de travailleur

  1. Configurez votre environnement de développement

Avant de commencer à construire, vous devrez installer Wrangler, l'outil en ligne de commande de Cloudflare pour gérer les Workers :

npm install wrangler
Copier après la connexion

Conseil : Si npm n'est pas installé, vous pouvez facilement l'obtenir en téléchargeant et en installant Node.js depuis nodejs.org.

  1. Créer un nouveau travailleur à l'aide du modèle de robot Telegram

Une fois Wrangler configuré, accédez au répertoire dans lequel vous souhaitez que vos fichiers de travail résident. Exécutez la commande suivante pour créer votre travailleur :

npm create cloudflare@latest MY_WORKER_NAME
Copier après la connexion

Remplacez MY_WORKER_NAME par votre nom préféré pour le travailleur. Si c'est la première fois que vous utilisez Wrangler, il vous demandera de vous connecter à votre compte Cloudflare et de vous authentifier via une fenêtre de navigateur. Suivez simplement les instructions.

Lorsque vous êtes invité à saisir le modèle, sélectionnez Modèle à partir d'un dépôt GitHub et saisissez :

https://github.com/m-sarabi/cloudflare-telegram-bot
Copier après la connexion

Puis sélectionnez Typescript lorsque cela vous est demandé.

Assurez-vous d'aller sur ce référentiel et donnez-lui une étoile ⭐️ s'il vous plaît.

  1. Initialisez Git et ignorez le déploiement

Lors de l'installation, il vous sera demandé si vous souhaitez utiliser Git pour le contrôle de version et si vous souhaitez déployer votre travailleur immédiatement. Je suggère de sélectionner Non pour les deux, en attendant que nous ayons tout configuré.

Vous devriez voir le message : SUCCÈS Application créée avec succès !

? Configurez votre robot Telegram avec @BotFather

  1. Utilisez la commande /newbot pour créer votre bot.
  2. Suivez les instructions et prenez note du jeton API fourni.

Ensuite, nous allons configurer les variables d'environnement dans le fichier wrangler.toml dans le répertoire de votre projet. Ajoutez donc ces lignes au fichier :

[vars]
SECRET = "<SECRET>"
TOKEN = "<API_TOKEN>"
Copier après la connexion
  • SECRET : Remplacez avec un jeton aléatoire qui garantit que les demandes proviennent de votre webhook défini. Il peut contenir de 1 à 256 caractères, dont A-Z, a-z, 0-9, _ et -.
  • API_TOKEN : Remplacez avec le jeton API que vous avez obtenu de @BotFather.

Après avoir défini ces variables, exécutez cette commande dans le répertoire de votre projet :

npm run cf-typegen
Copier après la connexion

Cette commande régénère le fichier worker-configuration.d.ts, reflétant vos variables nouvellement définies.

? Écrire la logique de votre robot

Maintenant, passons à la partie amusante - coder le bot ! Dans cet exemple, nous allons créer ceci :

Scénario : Lorsqu'un utilisateur envoie la commande /start, le bot affiche un message avec un bouton. En appuyant sur le bouton, le bot le supprime et envoie un message de suivi.

Gérer la commande /start

Toutes les fonctions du gestionnaire de mise à jour se trouvent dans le répertoire src/Telegram/handlers.

Nous allons commencer par répondre à la commande /start avec un message et un bouton en ligne. Modifiez src/Telegram/handlers/handleMessage.ts comme ceci :

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'
                    }]
                ]
            }
        });
    }
}
Copier après la connexion

Cet extrait de code envoie un message avec un bouton de clavier intégré à l'aide de la méthode tg.sendMessage.

Gérer les pressions sur les boutons en ligne

Lorsque l'utilisateur appuie sur le bouton en ligne, nous voulons que le bot accuse réception de cette action. Modifiez 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.'
            });
        }
    }
}
Copier après la connexion

Ce code écoute la requête de données accept_rules et, en cas de correspondance, supprime le bouton en ligne et envoie un message de suivi à l'aide de la méthode tg.editMessageReplyMarkup.

? Enregistrer votre Webhook

Une fois la logique de votre bot en place, il est temps de déployer votre travailleur et de le connecter à Telegram via un webhook.

  1. Exécutez Wrangler déployer pour déployer votre travailleur.
  2. Accédez à votre tableau de bord Cloudflare et sélectionnez Travailleurs et pages.
  3. À côté du nom de votre projet, cliquez sur Visiter.
  4. Dans la barre d'URL, ajoutez /registerWebhook (par exemple, https://my-project.my-username.workers.dev/registerWebhook) et appuyez sur Entrée. Si vous voyez « Webhook enregistré », vous l'avez fait correctement !

Une fois déployé et enregistré, vous pouvez interagir avec votre bot sur Telegram. Commencez par cliquer sur Démarrer (ou envoyer /start), et vous devriez voir le message de bienvenue avec le bouton en ligne.

? Conclusion

Créer et déployer des robots Telegram n'a jamais été aussi simple grâce à Cloudflare Workers. En suivant ce guide, vous avez exploité la puissance de la technologie sans serveur pour créer un bot non seulement évolutif et rapide, mais également facile à entretenir.

Que vous construisiez un bot simple pour un usage personnel ou que vous déployiez quelque chose de plus complexe pour une entreprise, ce modèle fournit une base solide. Bon codage !

? Ressources et lectures complémentaires

  • Documentation des travailleurs Cloudflare
  • API Telegram Bot
  • Référentiel GitHub pour le modèle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal