有一个用 pyTelegramBotApi 编写的机器人。
我正在尝试将数据从通过 bot 菜单按钮启动的 Web 应用程序发送到使用window.Telegram.WebApp.sendData('test');
.
昨天发送了数据,尽管每次发送数据后都需要重新进入聊天才能再次发送。
今天根本没有发送数据。
在下面的链接中,他们写道 sendData 仅在启动通过常规键盘而不是通过内联(即菜单按钮)时才有效。尽管在@DurgerKingBot 示例中,一切似乎都可以通过内联按钮进行。
https://stackoverflow.com/questions/71909144/dont-get-a-response-from-from-telegram-web-app-for-bots
https://github.com/telegramdesktop/tdesktop/issues/24390
笔记。问题在于通过内联按钮进行呼叫,通过通常的按钮一切正常
Telegram 官方网站说 sendData() 只能通过键盘按钮发送
作为解决此问题的一个选项,您可以创建自己的服务器,该服务器将捕获来自 Web 应用程序的请求并执行您需要的行为。该服务器也可以是负责机器人的进程。
也就是用户去Order Food ->
比如点击按钮 ->
Web App 向你的背部发送请求 ->
Back 向带有bot的服务器发送信息(或者背部是你带有bot的服务器) ->
您执行必要的操作(例如向用户发送文本)->
向 Web 应用返回响应 ->
并执行
window.Telegram.WebApp.close()
结果,行为将与您的需要相似。
当您从 WebApp 向您的服务器发送请求以识别用户时,您可以获得例如这样的
window.Telegram.WebApp.initDataUnsafe.user