不要混淆这些标识。miniapp_id 是 MPChat 生成的、带签名的业务 ID;shortName 是每个 Bot 下的链接名;entryUrl 是用户最终打开的页面。三者角色不同。
总览
MPChat MiniApp 是在 MPChat 内打开的 Web 应用。当前阶段聚焦于:打开 MiniApp、暴露签名后的初始化数据、让后端验证用户身份。尚未实现完整 WebApp JavaScript API。
核心标识
名称 | 来源 | 用途 |
miniapp_id | 创建 MiniApp 时由 MPChat 生成(形如 | 业务 ID;出现在签名后的 |
shortName | 创建时设置的短链名。 | 与 bot 用户名组合成直达链接。同一 Bot 下唯一。 |
entryUrl | 创建时设置的 H5 入口 URL。 | 用户打开的页面;在 sendMessage 中作为 |
botUsername | bot 用户名。 | 直达链接的第一段路径。 |
直达链接规则
https://mp.net/{botUsername}/{shortName}路径中不要带
@。shortName在同一 Bot 下唯一;不同 Bot 可重名。只传
botUsername只解析到 Bot、不会选中默认 MiniApp——请带上shortName。
创建与打开如何衔接
创建 MiniApp(例如 BotFather
/newapp);记录miniapp_id、shortName、entryUrl。通过 sendMessage 的
web_app按钮或直达链接打开。打开时 MPChat 生成签名的启动上下文;后端用签名的
miniapp_id确认请求属于哪个 MiniApp。
shortName 不是 miniapp id
开发者常把
shortName误叫「miniappid」,这是错的。miniapp_id(形如ma_…)是平台签发的业务 ID,出现在签名initData里。shortName是创建时自定义的短名,与botUsername组成直链。只传
botUsername不会选中默认 MiniApp——必须带上shortName。
直达链接与 startapp
https://mp.net/{botUsername}/{shortName}
https://mp.net/{botUsername}/{shortName}?startapp=report_0528MPChat 将启动值作为
start_param写入签名的initData查询字符串。直链打开时,前端可读取
window.MpChat.WebApp.initDataUnsafe.startParam决定显示页面。涉及权限或业务状态时,使用后端验签后的start_param。带参直链与消息按钮可用
https://mp.net/{botUsername}/{shortName}?startapp=…。已登记的entryUrl保留为页面地址。BotFather 的
shortName区分大小写,同一 Bot 下不可重复。使用 3–30 个英文字母、数字或下划线(^[a-zA-Z0-9_]{3,30}$)。
相关文章
miniapp_id 不是前端定义的页面 ID,也不等于 shortName。始终信任原始 initData 中的签名值,绝不信任前端提交的未签名值。
