You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发Telegram游戏Bot:如何创建callback_game指定按钮?

解决Telegram游戏Bot中callback_game按钮的正确配置问题

你的代码存在两个关键问题,导致无法生成符合要求的游戏启动按钮:

  • 调用bot.send_game时未传入已创建的按钮标记(reply_markup设为了None),导致按钮根本不会被发送
  • callback_game参数用法错误,它需要传入types.CallbackGame()对象,而非字符串

以下是修正后的完整代码:

@bot.message_handler(commands=['start'])
def send_game(message):
    user_id = message.chat.id
    
    # 替换为你在BotFather处注册的游戏短名称
    game_short_name = "your_registered_game_name"
    
    markup = types.InlineKeyboardMarkup(row_width=2)
    # 正确创建带callback_game的游戏启动按钮
    game_button = types.InlineKeyboardButton("Play Game", callback_game=types.CallbackGame())
    markup.add(game_button)

    # 发送游戏时传入按钮标记,注意timeout参数为布尔值(首字母大写)
    bot.send_game(
        chat_id=user_id,
        game_short_name=game_short_name,
        reply_markup=markup,
        disable_notification=True,
        timeout=False
    )

额外注意事项:

  • 必须先在BotFather完成游戏注册,game_short_name要与注册时填写的完全一致,否则无法关联到你的游戏
  • 若需添加其他功能按钮(如排行榜、分享),可通过markup.add()继续添加,但首个按钮必须是带callback_game的启动按钮
  • 确保使用的python-telegram-bot库为最新版本,旧版本对callback_game的支持可能存在兼容性问题

内容的提问来源于stack exchange,提问作者mhawk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 15:22:32