我有一个答复标记键盘。我为其回调数据设置了一个user_id。有什么方法可以将文本消息发送到按下按钮时在回调数据中设置的ID? 谢谢。
答案 0 :(得分:0)
...我为其回调数据设置了一个user_id
您无需将user_id
的按钮上的callback_data
设置为InlineKeyboard
。
用户点击按钮时,您将收到一个包含用户ID的Update:update.callback_query.from.id
有什么方法可以将文本消息发送到按下按钮时在回调数据中设置的ID?
鉴于用户的ID,机器人可以使用方法sendMessage发送消息。将用户的ID作为chat_id
参数传递。
当用户敲击嵌入式键盘时,用户将重定向到嵌入式键盘的url中设置的url,然后在数据库中添加用户的分数,这就是为什么我需要url和回调数据的原因。网址和用户在我数据库中的得分。当用户单击嵌入式键盘时,我想添加网址的计数器和用户的计数
从技术上讲,您不能在callback_data
中放置URL 和 InlineKeyboardButton
。来自docs:
InlineKeyboardButton。此对象表示嵌入式键盘的一个按钮。您必须完全使用一个可选字段。
因此,机器人将无法知道用户是否按下了带有URL的按钮。
我在这里看到的唯一可能的解决方法是将另一个Web服务器用作“代理”。这是我的主意:
InlineKeyboard
。键盘包含带有指向您的网站的网址的按钮,例如https://example.com?url=<URL_ID>&user=<TELEGRAM_USER_ID>
URL_ID
是目标站点或其ID /哈希,TELEGRAM_USER_ID
是电报用户的ID或其哈希