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

Pyrogram请求用户自有频道时键盘引发异常问题求助

问题排查与解决方法

核心问题点

  • 函数定义语法错误:async def request_channel(message:types.Message) 末尾缺少冒号:,这会直接触发语法异常
  • 按钮类型与键盘类型不匹配:你误用了Raw层的KeyboardButtonRequestPeer,还错误搭配了InlineKeyboardMarkup。请求用户选择频道的按钮属于回复键盘(ReplyKeyboardMarkup),而非内联键盘,且应使用Pyrogram封装好的types.KeyboardButtonRequestPeer,而非Raw类型。

修正后的代码

from pyrogram import types

async def request_channel(message: types.Message):
    btn = [
        [
            types.KeyboardButtonRequestPeer(
                text="Select Channel",
                button_id=1,
                peer_type=types.RequestPeerTypeBroadcast(creator=True),
            )
        ]
    ]
    # 使用ReplyKeyboardMarkup替代InlineKeyboardMarkup
    keyboard = types.ReplyKeyboardMarkup(btn, one_time_keyboard=True)
    
    await message.reply_text("Select your channel:", reply_markup=keyboard)

额外说明

  • 添加one_time_keyboard=True可让用户选择频道后自动收起键盘,优化交互体验
  • 用户选择频道后,需在客户端的事件监听逻辑中,通过button_id=1匹配响应,获取用户选中的频道信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:52:07