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

如何用Pyrogram点击机器人的Web应用菜单按钮?

解决Pyrogram调用RequestWebView报BotInvalid错误的方案

错误原因

你遇到的BOT_INVALID错误,是因为messages.RequestWebView的bot参数需要传入机器人的InputUser对象,而你直接使用resolve_peer返回的Peer对象不符合要求,导致Telegram判定参数无效。

修正后的代码

from pyrogram.types import InputUser
from pyrogram.raw.functions.messages import RequestWebView

# 获取机器人的用户信息(包含id和access_hash)
bot_user = await user_bot.get_users('xxx_bot')
# 构造正确的InputUser对象
bot_input_user = InputUser(id=bot_user.id, access_hash=bot_user.access_hash)
# 获取与机器人对话的会话Peer
chat_peer = await user_bot.resolve_peer('xxx_bot')

# 调用RequestWebView触发菜单Web应用
ret = await user_bot.invoke(
    RequestWebView(
        peer=chat_peer,
        bot=bot_input_user,
        platform='android',
        from_bot_menu=True
    )
)

关键说明

  • get_users方法能准确获取机器人的完整用户数据,包括构造InputUser必需的id和access_hash,这是让Telegram识别到有效机器人的核心。
  • peer参数指定你与机器人的对话会话,用resolve_peer解析机器人用户名即可。
  • 确保你的userbot账号已经和该机器人建立过对话(至少发送过一条消息),否则可能触发会话不存在的错误。
  • 确认目标机器人确实设置了菜单按钮为Web应用,且该应用对当前账号可见。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:07:16