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

如何用Telethon从用户端交互机器人Web应用及解决调用报错

使用Telethon与机器人Web应用交互的正确方式

核心问题定位

你之前调用RequestAppWebViewRequest报错,本质是InputBotAppID参数填错了——你用了机器人实体的id和access_hash,但这个参数需要的是Web应用自身的ID和访问哈希,不是机器人的。

正确获取Web应用的ID和Access Hash

有两种可靠方式拿到正确参数:

  • 从机器人的内联按钮数据提取:当你收到包含Web应用按钮的消息时,解析按钮的web_app字段(通常在KeyboardButtonWebView类型里),里面会直接给出bot_app_id和access_hash,这就是InputBotAppID需要的id和access_hash。
  • 调用messages.GetBotAppRequest:传入机器人实体、Web应用的ID(需从按钮或机器人官方信息获取),就能返回包含access_hash的Web应用详情。

修正后的调用代码

# 先获取目标机器人的实体
bot_entity = await client.get_entity('@目标机器人用户名')

# 替换成从按钮数据或GetBotApp拿到的Web应用ID和Access Hash
web_app_id = 123456789
web_app_access_hash = 9876543210987654321

# 发起WebView请求
result = await client(functions.messages.RequestAppWebViewRequest(
    peer=bot_entity,
    app=types.InputBotAppID(
        id=web_app_id,
        access_hash=web_app_access_hash
    ),
    platform='desktop'  # 合法值包括android/ios/desktop,不能随便填
))
print(result.stringify())

额外注意事项

  • platform字段必须填Telethon认可的合法值,比如desktop、android、ios,否则也会触发参数错误。
  • 确保peer参数是正确的机器人实体(通过get_entity获取的对象或合法的用户名/ID),避免用无效的链接格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:27:16