跳到主要内容

发布小程序

作为开发者,了解我们所处的生态系统是非常重要的。Telegram 为小程序开发者提供了独特的机会,得益于其强大的平台和广泛的用户基础。本文将指导您通过 Telegram 可用的渠道发布您的小程序。

tApps 中心

什么是 tApps 中心? TON 基金会引入了 Telegram 应用中心,以创建 Telegram 机器人和小程序 (TMAs) 的集中式库。这个平台旨在通过提供一个类似于您已经熟悉的知名应用商店的界面来增强用户体验。

广泛的生态系统支持。Telegram 应用中心不仅仅关注 TON 生态系统;它还欢迎来自其他区块链的应用。您甚至不需要 web3 集成就可以成为这个目录的一部分。这种包容性的做法旨在将 Telegram 建立成一个“一切皆应用”的超级应用,类似于微信等平台,用户可以在一个界面访问多种服务。

打开 tApps 中心

为什么在 tApps 中心发布?

更大的曝光度。Telegram 应用中心为开发者提供了一个展示他们项目给广泛受众的绝佳机会,使得吸引用户和投资者变得更加容易。

社区精神。该平台采取了以社区为中心的方法,鼓励合作以及资源和知识的共享。

在 TON 博客中阅读更多

在 Telegram 内启动

Telegram 目前支持六种不同的方式来启动小程序:从 键盘按钮、从 内联按钮、从 机器人菜单按钮、通过 内联模式、从 直接链接 启动 — 甚至从 附件菜单 中启动。

键盘按钮小程序

简而言之:web_app 类型的 键盘按钮 启动的小程序可以使用 Telegram.WebApp.sendData 将数据以 服务消息 的形式发送回机器人。这使得机器人能够在不与任何外部服务器通信的情况下产生响应。

用户可以使用 自定义键盘机器人消息下的按钮,以及发送自由格式的 文本消息 或 Telegram 支持的任何 附件类型 与机器人互动:照片和视频、文件、地点、联系人和投票。为了更多的灵活性,机器人可以利用 HTML5 的全部功能来创建用户友好的输入接口。

您可以发送一个 web_app 类型的 KeyboardButton,以从指定的 URL 打开一个小程序。

要将数据从用户传回机器人,小程序可以调用 Telegram.WebApp.sendData 方法。数据将以字符串形式通过服务消息传输给机器人。机器人在接收到数据后可以继续与用户通信。

适合:

  • 自定义数据输入界面(用于选择日期的个性化日历;带高级搜索选项的列表选择数据;让用户“转动轮盘”并从可用选项中选择一个的随机器等等。)
  • 可复用组件,不依赖于特定的机器人。

内联按钮小程序

简而言之: 对于像 @DurgerKingBot 这样更互动的小程序,使用 web_app 类型的 内联键盘按钮,它可以获取基本用户信息,并可用于代表用户向机器人聊天发送消息。

如果仅接收文本数据不足够,或者您需要更高级和个性化的界面,您可以使用 web_app 类型的 内联键盘按钮 打开一个小程序。

从按钮中打开的小程序会和按钮中指定的 URL 一样。除了用户的 主题设置,它还会收到基本的用户信息(ID、名称、用户名、语言代码)和一个唯一的会话标识符,query_id,这允许代表用户的消息被发送回机器人。

机器人可以调用 Bot API 方法 answerWebAppQuery 来发送内联消息从用户返回到机器人并关闭小程序。接收到消息后,机器人可以继续与用户通信。

适合:

  • 完全成熟的 Web 服务和任何类型的集成。
  • 使用案例实际上是 无限的

从菜单按钮启动小程序

简而言之: 小程序可以从定制的菜单按钮启动。这仅仅提供了一种更快访问应用的方式,并且与 从内联按钮启动小程序 没有区别。

默认情况下,与机器人的聊天总是显示一个方便的 菜单按钮,提供快速访问所有列出的 命令。使用 Bot API 6.0,这个按钮可以用来 启动一个小程序 代替。

要配置菜单按钮,您必须指定它应该显示的文本和小程序的 URL。有两种设置这些参数的方法:

  • 为了为 所有用户 自定义按钮,请使用 @BotFather(/setmenubutton 命令或 Bot 设置 > 菜单按钮)。
  • 为了为 所有用户特定用户 自定义按钮,请使用 Bot API 中的 setChatMenuButton 方法。例如,根据用户的语言更改按钮文本,或根据用户在您的机器人中的设置显示不同的 Web 应用链接。

除此之外,通过菜单按钮打开的 Web 应用与 使用内联按钮时 的工作方式完全相同。

@DurgerKingBot 允许从内联按钮和菜单按钮启动其小程序。

内联模式小程序

简而言之: 通过 web_app 类型的 InlineQueryResultsButton 启动的小程序可以在内联模式中的任何地方使用。用户可以在 Web 界面中创建内容,然后通过内联模式无缝发送到当前聊天。

您可以在 answerInlineQuery 方法中使用 button 参数来显示一个特殊的“切换到小程序”的按钮,它可以在内联结果的上方或者代替内联结果显示。这个按钮将 打开一个指定 URL 的小程序。完成后,您可以调用 Telegram.WebApp.switchInlineQuery 方法将用户送回内联模式。

内联小程序 无法访问 聊天 - 它们不能读取消息或代表用户发送新消息。要发送消息,用户必须被重定向到 内联模式 并主动选择一个结果。

适合:

  • 在内联模式中的完全成熟的 Web 服务和集成。

直接链接小程序

简而言之: 小程序机器人可以从任何聊天中的直接链接启动。它们支持 startapp 参数并且知道当前聊天上下文。

NEW 您可以使用直接链接在当前聊天中 直接打开一个小程序。如果链接中包含非空的 startapp 参数,它将在 start_param 字段和 GET 参数 tgWebAppStartParam 中传递给小程序。

在这种模式下,小程序可以使用 chat_typechat_instance 参数来跟踪当前聊天上下文。这引入了对多个聊天成员的 并发共享 使用的支持 - 创建实时白板、团体订购、多人游戏和类似应用。

从直接链接打开的小程序 无法访问 聊天 - 它们不能读取消息或代表用户发送新消息。要发送消息,用户必须被重定向到 内联模式 并主动选择一个结果。

示例

适合:

  • 任何用户都可以一键打开的完全成熟的 Web 服务和集成。
  • 协作、多人或团队合作导向的聊天上下文中的服务。

使用案例实际上是 无限的