群组频道

Telegram 游戏平台:HTML5 Canvas、WebGL 机器人架构与群组排行榜

本文介绍 Telegram 游戏与 Mini App 的运作机制:从点击 Play 到网页视图加载、排行榜写回消息,并说明开发者能看到哪些信息,以及哪些请求正常、哪些应当警惕。

内容导读

本文介绍 Telegram 游戏与 Mini App 的运作机制:从点击 Play 到网页视图加载、排行榜写回消息,并说明开发者能看到哪些信息,以及哪些请求正常、哪些应当警惕。

Telegram 游戏平台:HTML5 Canvas、WebGL 机器人架构与群组排行榜主题插画

Telegram 游戏是一个在聊天内打开的网页。无需安装任何东西,分数会以排行榜的形式回写到消息上,而整个游戏的存在与消亡都依附于它被发布的那段对话。

这套机制最初于 2016 年为游戏而构建,如今每一个 Mini App 用的都是同一套。理解了它,整个 Mini App 世界就变得清晰可读——包括其中那些值得警惕的部分。

你将能够做到

  • 在任何聊天中启动一个游戏,并向其中的人发起挑战。
  • 解释从点击 Play 到游戏出现之间发生了什么。
  • 说明游戏或 Mini App 的开发者能看到你的哪些信息。
  • 辨别 Mini App 发出的哪些请求是正常的,哪些不是。

排行榜是消息的一部分,而不是游戏的一部分——正因如此,聊天中的每个人都会同时看到它更新。

点击 Play 时会发生什么

在任何聊天中输入游戏机器人的用户名即可召唤一个游戏。机器人会回复一张卡片——包含标题、图片和 Play 按钮——作为一条普通消息发布,聊天中的每个人都能看到并使用。

点击 Play 会向 Telegram 请求一个一次性地址。Telegram 返回该地址,在聊天上方打开一个网页视图,游戏便从开发者自己的服务器加载。从那一刻起,你看到的是一个网页,而不是 Telegram。

当一局结束时,游戏会把你的分数回传,Telegram 则用新的排名重写原来那条消息。排行榜属于那条消息,所以同一个游戏发布在两个群里,会保留两份各自独立的竞争记录。

竞争本身就是这个功能 发布在群组里的游戏会在有人打破记录时通知大家。正是这个循环让它在聊天应用中行得通——游戏本身平平无奇,围绕它的争论才精彩。
互动

游戏、Mini App 以及该信任什么

它们都以同样的方式打开,而这恰恰就是问题所在。以下四种东西都会在那个网页视图中打开,我们来看看每一种的正常行为边界在哪里。

群组里的一个游戏

一个 Mini App

一个想要连接钱包的

一个想要密码的

一个普通游戏

开发者会收到一个代表你的签名标识符以及你的分数。这足以维护排行榜,但拿不到你的电话号码或聊天记录。
不会安装任何东西,关闭视图即结束。风险与打开一个链接相当。
它终究是别人的网站。它可以展示广告,可以在自身范围内追踪你,而且它不是 Telegram 编写的。

一个真正干活的 Mini App

同样的机制,更大的野心:商店、工具、票务。它可能要求你分享联系方式或位置,而每次都会明确征求你的同意。
出现明确的弹窗提示才是健康的情况。要读清楚它在请求什么,而不是随手点过去。
应用的外观由其开发者决定。看起来像官方的,并不能证明任何事。

它要求连接钱包

连接以查看地址是寻常操作。批准一笔交易则不是同一回事——每次都要读清楚你在签什么。
绝不要把助记词输入到 Mini App 中。没有任何正规应用会这样要求。连接钱包永远不需要你的助记词。
身处 Telegram 之内,会给一个应用带来一种并不真实的背书感。网页视图只是一扇窗,不是一道审查程序。

它索要 Telegram 验证码或密码

停下。没有任何游戏、Mini App 或机器人需要你的登录验证码或云端密码。这种请求只有一个目的。
它要你扫描的二维码,以及要你转发收到的验证码的请求,同样如此。
关掉它并举报该机器人。交出账号是这个平台唯一永远不会要求你做的事。

整条规则就是:把网页视图里打开的东西当作一个网站来对待,因为它本来就是。

启动一个游戏

  1. 在聊天中输入游戏机器人的用户名 在任何对话或群组中,以 @ 加上名字开头。键盘上方会出现一张卡片。
  2. 从列表中选择一个游戏 机器人会提供它所托管的内容。选中一个,它就会作为一条消息发布到聊天中。
  3. 点击 Play 网页视图在聊天上方打开,游戏随之加载。
  4. 玩完,让它关闭 你的分数会被写回那条消息,聊天中的每个人都会看到排行榜更新。
  5. 滑动返回对话 聊天仍停留在你离开时的位置。没有安装任何东西,也没有任何东西在运行。

为什么这个小功能很重要

游戏平台证明了一个在当时看来微不足道的观点:一个完整的交互式应用可以运行在对话之中,作为一条消息被分享,并把结果写回聊天,而无需任何人离开或安装任何东西。

此后在 Telegram 上构建的一切都沿用了这种形态。商店、工具、票务、整波点击即玩的 App 以及附着其上的钱包,都是同一个网页视图、同一套握手流程,只是做得更多。上面各面板末尾的告诫也出自同一处:机制本身是中立的,它是否可信,完全取决于写这个页面的人是否可信。

← 返回 TG知识库