목차
텔레그램 웹훅 주요 고려사항
허용된 포트
서버 제한
전제조건
텔레그램 웹훅 설정(Node.js 예시)
텔레그램 웹훅 라우팅
요약

텔레그램 웹훅

Jan 19, 2025 pm 08:36 PM

telegram webhook

폴링 모드에 작별 인사를 하고 효율적인 Telegram Webhook을 도입하세요! Telegram 서버에 지속적으로 업데이트를 요청하는 폴링 방식과 달리 Webhook을 사용하면 Telegram이 업데이트를 서버에 직접 푸시할 수 있으므로 서버 리소스 소비가 줄어들고 효율성이 크게 향상됩니다. 이전 기사에서는 Node.js를 사용하여 Telegram 로봇을 구축하고 폴링 방법을 사용하여 업데이트를 얻는 방법을 설명했습니다. 이 접근 방식이 효과적이지만 확장성을 찾고 있다면 현재 속도 제한이 발생하지 않더라도 웹훅으로 전환하면 봇이 더 효율적으로 실행되고 증가하는 트래픽을 쉽게 처리하여 서버의 부하를 줄일 수 있습니다.

텔레그램 웹훅 주요 고려사항

웹훅을 사용할 때 다음 사항에 꼭 주의하세요.

허용된 포트

텔레그램은 웹훅 포트 4개만 지원합니다. 이 제한사항의 이유는 현재 명확하지 않지만 향후 변경될 수 있습니다. 현재 지원되는 포트는 다음과 같습니다.

  • 443 (HTTPS 권장)
  • 80
  • 88
  • 8443

웹후크가 제대로 작동하려면 이러한 포트 중 하나가 사용 가능하고 액세스 가능해야 합니다. 포트를 명시적으로 지정하지 않으면 웹훅은 기본적으로 8443 포트로 설정됩니다.

서버 제한

포트는 4개만 허용되므로, 동일한 서버에서 웹훅을 사용하는 애플리케이션의 개수는 4개를 초과할 수 없습니다.

전제조건

설정을 시작하기 전에 다음 사항을 확인하세요.

  • Node.js 설치: 아직 설치되지 않은 경우 nodejs.org에서 Node.js를 다운로드하여 설치하세요.
  • 텔레그램 계정: 봇 토큰을 받고 봇과 상호 작용하려면 텔레그램 계정이 필요합니다.
  • HTTPS URL용 Ngrok: Telegram은 HTTPS 엔드포인트를 사용하려면 웹후크가 필요합니다. Ngrok을 사용하여 로컬 서버를 인터넷에 노출하세요.

전체 코드는 Github에서 확인할 수 있습니다.

텔레그램 웹훅 설정(Node.js 예시)

// 导入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;
로그인 후 복사

텔레그램 웹훅 라우팅

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端口运行");
});
로그인 후 복사

요약

웹훅으로 전환하면 Telegram 속도 제한 문제를 제거하고 봇의 효율성을 높일 수 있습니다. 서버를 올바르게 구성하고, 허용된 포트를 사용하고, HTTPS를 사용하여 연결을 보호하는지 확인하세요.

내 다음 기사가 게시되면 알림을 받으려면 나를 팔로우하세요 ?.

위 내용은 텔레그램 웹훅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

사용자 정의 Google 검색 API 설정 자습서 사용자 정의 Google 검색 API 설정 자습서 Mar 04, 2025 am 01:06 AM

사용자 정의 Google 검색 API 설정 자습서

예제 색상 JSON 파일 예제 색상 JSON 파일 Mar 03, 2025 am 12:35 AM

예제 색상 JSON 파일

8 멋진 jQuery 페이지 레이아웃 플러그인 8 멋진 jQuery 페이지 레이아웃 플러그인 Mar 06, 2025 am 12:48 AM

8 멋진 jQuery 페이지 레이아웃 플러그인

10 JQuery Syntax Highlighter 10 JQuery Syntax Highlighter Mar 02, 2025 am 12:32 AM

10 JQuery Syntax Highlighter

자신의 Ajax 웹 응용 프로그램을 구축하십시오 자신의 Ajax 웹 응용 프로그램을 구축하십시오 Mar 09, 2025 am 12:11 AM

자신의 Ajax 웹 응용 프로그램을 구축하십시오

' this ' 자바 스크립트로? ' this ' 자바 스크립트로? Mar 04, 2025 am 01:15 AM

' this ' 자바 스크립트로?

10 JavaScript & JQuery MVC 자습서 10 JavaScript & JQuery MVC 자습서 Mar 02, 2025 am 01:16 AM

10 JavaScript & JQuery MVC 자습서

See all articles