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

如何用Python版Telegram Bot向Web App View发送自定义数据包?

可行,实现方案如下

你的需求完全可以实现,Telegram Bot Web App View支持直接从Bot向Web App传递自定义数据载荷,无需依赖网站端存储数据库。

核心实现思路

通过Telegram Bot API发送Web App按钮时,将你的JSON数据库数据作为自定义参数传递给Web App,Web App在加载时直接读取该数据即可用于交互。

Python Bot端代码示例(以pyTelegramBotAPI为例)

import telebot
import json

# 替换为你的Bot Token
BOT_TOKEN = "your_bot_token_here"
bot = telebot.TeleBot(BOT_TOKEN)

# 构造你的小型JSON数据库(示例30条数据)
def get_custom_database():
    return json.dumps([
        {"id": i, "title": f"数据条目{i}", "content": f"这是第{i}条数据的内容"}
        for i in range(1, 31)
    ])

@bot.message_handler(commands=['start'])
def launch_web_app(message):
    # 生成Web App配置,传入自定义数据
    web_app_info = telebot.types.WebAppInfo(
        url="https://your-web-app-url.com",  # 替换为你的Web App地址
        data=get_custom_database()
    )
    # 创建带Web App的键盘按钮
    keyboard_btn = telebot.types.KeyboardButton(
        text="打开数据交互界面",
        web_app=web_app_info
    )
    reply_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    reply_markup.add(keyboard_btn)
    
    bot.send_message(
        message.chat.id,
        "点击下方按钮进入数据交互界面",
        reply_markup=reply_markup
    )

if __name__ == "__main__":
    bot.polling(none_stop=True)

Web App端(JavaScript)获取数据

Web App加载后,直接从Telegram提供的API中读取自定义数据:

// 初始化Telegram Web App
Telegram.WebApp.ready();

// 读取Bot传递的自定义数据并解析为JSON
try {
    const rawData = Telegram.WebApp.initDataUnsafe.data;
    const database = JSON.parse(rawData);
    
    // 这里可以使用database进行界面渲染、交互逻辑开发
    console.log("加载的数据库数据:", database);
} catch (error) {
    console.error("数据解析失败:", error);
}

关键注意事项

  • 数据长度限制:Telegram允许data参数最大为4096字节,30条简单结构的JSON数据远低于此限制,完全够用。
  • 安全性:如果数据包含敏感内容,建议先在Bot端加密,Web App端解密后使用;若为公开数据,直接传递即可。
  • 无需网站端存储:所有数据直接从Bot传递到Web App,Web App可直接在前端使用这些数据完成交互,不需要额外的后端存储服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:10:24