如何向Telegram网页应用直接链接传递参数?
解决Telegram直接链接网页应用的参数传递问题
可行方案1:通过startapp参数传递自定义内容
虽然文档提及startapp参数最初针对附件菜单,但直接链接启动的网页应用同样支持该参数。你可以构造如下格式的链接:
https://t.me/botusername/appname?startapp=someId:id
在网页应用中,通过Telegram Web Apps API获取该参数:
const startParam = window.Telegram.WebApp.initDataUnsafe.start_param; // 解析参数,示例:拆分得到key和value const [key, value] = startParam.split(':'); // 后续根据解析结果处理动态路由逻辑
注:如果需要传递多个参数,可以用自定义分隔符(如&或|)拼接,再在前端解析。
可行方案2:验证参数合法性(可选)
如果需要确保参数未被篡改,可使用Telegram提供的初始化数据签名验证机制:
- 从
window.Telegram.WebApp.initData获取完整的初始化数据字符串 - 使用你的Bot令牌对数据进行签名验证,确认
start_param的真实性
替代方案:通过Bot生成动态入口
如果允许用户通过Bot触发网页应用,可让Bot调用openWebApp方法时传入start_param参数,用户点击后网页应用将直接获取到该参数,无需手动构造链接。
内容的提问来源于stack exchange,提问作者Himanshu Ranjan
相关产品推荐
相关产品推荐

