Telegram 游戏:中级指南

2025-06-07

Telegram 游戏:中级指南

我最近在 Telegram 上创建了一个游戏。这不是我的第一个 Telegram 机器人,但这将是我的第一个游戏。因此,我首先查看了 Telegram游戏平台的官方文档

Telegram 游戏平台文档

读的时候,我觉得它对细节的描述相当简略。我还希望他们能直接链接到机器人 API 文档,这样我就能看到具体涉及的对象、方法和字段。

本指南旨在提供比现有文档略微更详细的信息(以及实用链接),但并非循序渐进的指南。它与语言无关,因此无论您选择使用哪种语言编写机器人和游戏,都可以应用这些概念。

创建游戏

  1. /newbot使用@BotFather创建一个Telegram机器人
  2. 使用以下方式为机器人启用内联模式/setinline
  3. 使用创建新游戏/newgame

经过此过程后,您将获得您的机器人令牌和您的game_short_name,稍后将使用它们。

启动游戏

以下是文档内容:

一旦游戏创建完成,您的机器人就可以将其作为常规消息发送到聊天中,或通过内联模式提供。

让我们来分析一下。

首先阅读有关内联模式回调按钮的信息可能会有所帮助。

将游戏作为常规消息发送到聊天室

例如,您可以让机器人/start通过发送游戏来响应命令(或您选择的任何其他命令/短语)。

用户发送/start,机器人回应游戏

这是幕后发生的事情的序列图。

将游戏作为常规消息发送到聊天的序列图

  1. 用户使用您选择的短语发起对话
  2. 您的机器人将收到一个包含已发送消息的Message对象
  3. 您可以使用sendGameAPI 进行响应,这相当简单,因为唯一必填字段是chat_idgame_short_name(从设置过程来看)
  4. 机器人发送一条带有游戏的消息和一个“玩游戏名称回调按钮

接下来发生回调交互。

  1. 用户点击“玩游戏名称
  2. Telegram向您的CallbackQuery机器人发送game_short_name
  3. 你的机器人会answerCallbackQuery通过游戏 URL 进行调用
  4. Telegram 打开游戏的网址

通过内联模式提供游戏

这是最让我困惑的部分。

这是用户、Telegram 和您的机器人之间交互的等效序列图。

通过内联模式提供游戏的序列图

  1. 用户在任何聊天中输入“ @your_bot_username ”即可发起互动
  2. InlineQueryTelegram向您的机器人发送
  3. 你的机器人会answerInlineQuery用一系列InlineQueryResultGame
  4. Telegram 将结果显示给用户Telegram 将结果显示给用户
  5. 用户从列表中选择一个游戏
  6. 用户游戏发送一条消息(通过您的机器人)和一个“玩游戏名称”回调按钮。用户通过游戏发送消息

通过回调交互启动游戏的剩余流程与之前相同。

结论

本指南详细说明了启动游戏时用户、Telegram 和您的机器人之间的交互。

这两种方法之间一个有趣的区别是:在第一种情况下,机器人是发送包含游戏消息的人。在第二种情况下,发起内联查询的用户是发送游戏消息的人。这是因为机器人可能不是群聊的成员(因为群聊是内联交互)。

希望本指南对您有所帮助,祝您编码愉快!

文章来源:https://dev.to/xlzior/telegram-games-an-intermediate-guide-45io
PREV
8 tips from John Wick for 10x developers
NEXT
.NET 开发人员常用的 8 个 C# PDF 库比较:优缺点