Mini App Tester 是一个面向 Telegram Mini App 开发的在线测试工具,不写代码就能试用 Telegram WebApp JavaScript API(Telegram.WebApp)。在普通浏览器中,它以模拟模式运行并模拟这套 API;在 Telegram 内打开时,它会直接调用当前客户端的真实 API。做 Telegram 小程序开发时,可以先用它确认某个功能怎么用、返回什么,再动手写代码,也可以用来比较不同客户端的表现。
Telegram.WebApp。https://telegram-bot-api.info/telegram-mini-app-tester.html 设为机器人的 Mini App URL(使用 /newapp 或菜单按钮设置),无需自己部署。version、platform、colorScheme、initData、themeParams 和安全区域。在 Telegram 内,测试工具的界面语言会跟随用户的语言设置。测试工具把 API 分成 13 个方法组:
ready、expand、close,以及顶栏和背景颜色。showPopup、showAlert、showConfirm 和二维码扫描。openInvoice、shareToStory、表情状态、全屏和 downloadFile。事件日志会带时间戳记录 45+ 种事件,例如 themeChanged、viewportChanged、mainButtonClicked 和 fullscreenChanged,你可以清楚地看到自己的事件处理函数会收到什么。
Mini App 最早叫 Web App,所以 API 对象至今仍叫 Telegram.WebApp。模拟模式适合调界面和流程:哪些方法可用、返回什么、会触发哪些事件都一目了然,存储则用 localStorage 模拟。但它无法还原原生弹窗、触觉反馈和真实的用户数据,其中的 initData 也只是 Telegram 从未签名过的示例数据。在 Telegram 内打开时,测试工具会切换到真实 API,initData 是真实数据,每次调用都会到达当前客户端。
正式上线前要记住两点:Mini App 必须通过 HTTPS 提供;服务端必须校验 initData(基于 Bot Token 的 HMAC-SHA256 签名,同时检查 auth_date 是否过期),不要直接信任前端传来的用户信息。
测试工具完全在浏览器中运行,不需要 Bot Token,也不调用 Bot API。模拟存储的数据只保存在你浏览器的 localStorage 中。
第一次接触 Mini App?先阅读 创建 Telegram 机器人教程,再按 Telegram Bot Token 获取教程 拿到 Token。想通过 API 给 Mini App 配置菜单按钮,可以在 Bot API Tester 中调用 setChatMenuButton;想用内联键盘按钮打开 Mini App,可参考 用 Bot API 发送消息 中的 reply_markup 用法。任何方法都可以在 Swagger 或 方法参考 中查到。
在任意浏览器中打开 Mini App Tester。它的模拟模式会模拟 Telegram.WebApp,不需要机器人,也不需要 Telegram 客户端,就能调用方法、触发事件、查看属性。
可以。在 @BotFather 中通过 /newapp 或菜单按钮设置,把 https://telegram-bot-api.info/telegram-mini-app-tester.html 填为 Mini App URL。在 Telegram 内它会调用真实的 WebApp API,你不需要准备任何服务器。
WebApp 核心方法,MainButton、SecondaryButton、BackButton 和 SettingsButton,弹窗,HapticFeedback,CloudStorage、DeviceStorage、SecureStorage,传感器,生物识别,位置,权限,账单与动态分享,表情状态,全屏和文件下载,另有 45+ 种事件的日志。
无效。模拟模式使用的是 Telegram 从未签名过的示例数据,HMAC 校验必然失败。要测试服务端校验,请在 Telegram 内打开测试工具,获取真实的 initData。
不需要。这个页面完全不调用 Bot API。只有想在 Telegram 内把它作为 Mini App 打开时,才需要一个机器人。