跳转到主要内容

MiniApp 开发入门:应用标识、网址与直达链接

MPChat MiniApp 是什么,以及标识如何配合:miniapp_id 与 shortName 区别、entryUrl、botUsername、直达链接与 ?startapp= → start_param。

不要混淆这些标识。miniapp_id 是 MPChat 生成的、带签名的业务 ID;shortName 是每个 Bot 下的链接名;entryUrl 是用户最终打开的页面。三者角色不同。


总览

MPChat MiniApp 是在 MPChat 内打开的 Web 应用。当前阶段聚焦于:打开 MiniApp、暴露签名后的初始化数据、让后端验证用户身份。尚未实现完整 WebApp JavaScript API。

核心标识

名称

来源

用途

miniapp_id

创建 MiniApp 时由 MPChat 生成(形如 ma_...)。

业务 ID;出现在签名后的 initData。需在后端校验。

shortName

创建时设置的短链名。

与 bot 用户名组合成直达链接。同一 Bot 下唯一。

entryUrl

创建时设置的 H5 入口 URL。

用户打开的页面;在 sendMessage 中作为 web_app.url。

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_0528
  • MPChat 将启动值作为 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 中的签名值,绝不信任前端提交的未签名值。

这是否解答了您的问题?