You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django+pyTelegramBotAPI开发的Telegram机器人生产环境webhook无响应问题

问题排查与解决步骤

1. 修复JSONDecodeError报错

报错是因为请求体末尾存在多余不可见字符/换行符,修改webhook视图中的JSON解析逻辑,先对请求体内容做去空白处理即可解决:

@csrf_exempt
def webhook(request):
    body_str = request.body.decode('utf-8').strip()
    print(body_str)
    update = telebot.types.Update.de_json(json.loads(body_str))
    bot.process_new_updates([update])
    return JsonResponse({'message': 'OK'}, status=200)

2. 修复生产环境无响应问题

这是核心故障,原因是你把webhook重置代码放在了全局作用域:
生产环境下Django通常会启动多个worker进程,每个进程启动时都会执行全局的bot.remove_webhook()和bot.set_webhook()代码,频繁重置webhook会导致Telegram清空待处理更新、甚至临时限流。
修改方案:
仅在本地调试模式下自动设置webhook,生产环境把webhook设置逻辑移到单独的手动执行脚本中,不要随进程启动自动执行,调整后的代码参考:

import json

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

import telebot

from django.conf import settings

bot = telebot.TeleBot('你的bot token')
if settings.DEBUG:
    WEBHOOK_HOST = 'https://zzzz.ngrok.io'
else:
    WEBHOOK_HOST = 'https://example.com'
WEBHOOK_URL = '/telegram_webhook/'

@bot.message_handler(commands=['start'])
def send_welcome(message):
    bot.reply_to(
        message,
        "Привет! Кажется, мы еще незнакомы. Твой номер: "+str(message.chat.id)
    )


@bot.message_handler(func=lambda message: True, content_types=['text'])
def echo_message(message):
    bot.reply_to(message, message.text)


@csrf_exempt
def webhook(request):
    body_str = request.body.decode('utf-8').strip()
    update = telebot.types.Update.de_json(json.loads(body_str))
    bot.process_new_updates([update])
    return JsonResponse({'message': 'OK'}, status=200)

# 仅本地调试时自动执行webhook设置,生产环境移除这部分代码
if settings.DEBUG:
    bot.remove_webhook()
    import time
    time.sleep(1)
    bot.set_webhook(
        url = WEBHOOK_HOST + WEBHOOK_URL,
    )

3. 额外校验项

如果修改后仍无响应,按以下顺序排查:

  • 确认生产环境的Telegram Bot Token和WEBHOOK_HOST配置正确,没有混淆测试和生产参数
  • 确认生产服务器的443端口对外开放,且没有WAF/CDN拦截Telegram的请求
  • 查看Django生产日志,确认Telegram的请求确实到达了webhook视图,没有被中间件拦截

内容的提问来源于stack exchange,提问作者Boris Paschenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:09:03