Maison >interface Web >js tutoriel >webhook de télégramme

webhook de télégramme

Patricia Arquette
Patricia Arquetteoriginal
2025-01-19 20:36:10856parcourir

telegram webhook

Dites adieu au mode sondage et adoptez le Webhook Telegram efficace ! Contrairement à la méthode d'interrogation qui demande en permanence des mises à jour au serveur Telegram, Webhook permet à Telegram de transmettre les mises à jour directement à votre serveur, réduisant ainsi la consommation des ressources du serveur et améliorant considérablement l'efficacité. Dans un article précédent, j'ai expliqué comment utiliser Node.js pour créer un robot Telegram et utiliser la méthode de sondage pour obtenir des mises à jour. Bien que cette approche fonctionne, si vous recherchez l'évolutivité, même si vous ne rencontrez actuellement pas de limites de débit, le passage aux webhooks garantira que votre bot fonctionnera plus efficacement et pourra facilement gérer l'augmentation du trafic, réduisant ainsi la charge sur vos serveurs.

Considérations clés pour le webhook Telegram

Lorsque vous utilisez des webhooks, veillez à faire attention aux points suivants :

Ports autorisés

Telegram ne prend en charge que quatre ports webhook. Même si la raison de cette restriction n’est pas claire pour l’instant, elle pourrait changer à l’avenir. Les ports actuellement pris en charge sont :

  • 443 (HTTPS est recommandé)
  • 80
  • 88
  • 8443

Le bon fonctionnement du webhook nécessite qu'un de ces ports soit disponible et accessible. Si vous ne spécifiez pas explicitement de port, le webhook utilisera par défaut le port 8443.

Limites du serveur

Puisque seuls quatre ports sont autorisés, le nombre d'applications utilisant des webhooks ne peut pas dépasser quatre sur un même serveur.

Prérequis

Avant de commencer la configuration, assurez-vous d'avoir les éléments suivants :

  • Node.js installé : S'il n'est pas déjà installé, téléchargez et installez Node.js depuis nodejs.org.
  • Compte Telegram : Vous avez besoin d'un compte Telegram pour obtenir le jeton du bot et interagir avec votre bot.
  • Ngrok pour les URL HTTPS : Telegram nécessite des webhooks pour utiliser les points de terminaison HTTPS. Utilisez Ngrok pour exposer votre serveur local à Internet.

Le code complet peut être trouvé sur Github.

Paramètres du Webhook Telegram (exemple Node.js)

<code class="language-javascript">// 导入Telegram Bot API
const TelegramBot = require('node-telegram-bot-api');

// 使用您的机器人令牌替换
const token = 'your telegram token'; // 请查看我的文章,了解如何在Telegram上从@BotFather获取机器人令牌

const WEB_HOOK_URL = 'https://localhost:3000/telegram-bot-webhook'; 
// 注意:它在localhost上无法工作,因此请使用ngrok之类的隧道服务。

// 创建使用Webhook的机器人
const bot = new TelegramBot(token, {
  webHook: {
    port: 88, // Telegram Webhook允许的端口:443、80、88、8443
  },
});

// 初始化Webhook
const initWebHook = async () => {
  const webhookInfo = await bot.getWebHookInfo();
  if (webhookInfo.url !== WEB_HOOK_URL) {
    await bot.setWebHook(WEB_HOOK_URL, {
      max_connections: 100,
    });
  }
};
initWebHook();

// 监听任何消息
bot.on('message', (msg) => {
  const chatId = msg.chat.id;

  // 简单命令处理
  if (msg.text.toLowerCase() === '/start') {
    bot.sendMessage(chatId, '欢迎!今天我能如何帮助您?', {
      reply_markup: {
        keyboard: [['/start', '/help']],
      },
    });
  } else if (msg.text.toLowerCase() === 'hello') {
    bot.sendMessage(chatId, `你好,${msg.from.first_name}!`);
  } else {
    bot.sendMessage(chatId, "我不确定如何回应。");
  }
});

// 导出机器人模块
module.exports = bot;
</code>

Routage des Webhooks de télégrammes

<code class="language-javascript">const express = require("express");
const app = express();
const bot = require("./bot");

// 解析POST请求的JSON主体
app.use(express.json());

app.get("/", (req, res) => {
  res.send("Hello World");
});

app.post("/telegram-bot-webhook", (req, res) => {
  bot.processUpdate(req.body);
  res.sendStatus(200);
});

app.listen(process.env.PORT || 3000, () => {
  console.log("服务器正在3000端口运行");
});</code>

Résumé

Le passage aux webhooks peut éliminer les problèmes de limitation du débit de Telegram et rendre votre bot plus efficace. Assurez-vous simplement de configurer correctement votre serveur, d'utiliser les ports autorisés et de sécuriser votre connexion via HTTPS.

Suivez-moi pour être averti de la publication de mon prochain article ?.

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!

Déclaration:
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