如何使用Telegram Bot API处理带按钮的回调查询(Callback Query)?

瓮依珊瓮依珊06月16日1782

我现在做Telegram营销的,需要让用户点击按钮触发某个动作,比如领取优惠券,加入群组等。如何通过Bot API接收按钮回调的数据?有简单的教程或者示例代码吗?

5 个回答

宫宛菡
宫宛菡回答于 06 月 16 日
最佳答案

1. 创建带按钮的回复,使用InlineKeyboardMarkup结构

2. 每个按钮设置 callback_data 参数,这个字符串会原样返回给你

3. 用户点击按钮,你的服务器会接收到 CallbackQuery 对象

4. 注意看 callback_query.data 字段,就是你设置的参数

5. 处理完毕别忘了调用 answerCallbackQuery,不然按钮没有反馈效果

6. 建议采用Webhook方式接收事件,不建议轮询营销号

7. 优惠券类场景建议采用唯一ID作为回调参数,避免撞单。

8. 加群按钮建议放群链接,回调用于处理业务逻辑

9. 测试的时候要记得开启bot的读取权限。

10. 官方文档包含完整示例,建议结合 Postman 调试

卢智渊
卢智渊回答于 06 月 16 日

1. 你需要先使用createInlineKeyboardMarkup创建带按钮的回复

2. 为每个按钮设置callback_data参数,该字符串是回调数据

3. 用户点击按钮后收到callback_query事件

4. 通过getUpdates或webhook监听这个事件

5. 从callback_query.data字段可以获取你设置的回调数据

6. 根据不同的数据执行不同的动作,比如发优惠券,拉群

7. 处理完要使用answerCallbackQuery向用户反馈

这样就基本完成了按钮交互的功能,实际开发建议使用现成的封装库会更方便。

贲运诚
贲运诚回答于 06 月 17 日

用InlineKeyboardMarkup构造带按钮的菜单,按钮中设置callback_data参数,这个参数是你自己定义的标识符,当用户点击按钮时,将触发callback_query事件,Bot API将返回一个data字段的数据包,解析data字段就知道用户点击的是哪一个按钮。

举个🌰:比如用Flask监听webhook,接收到update后判断是否有callback_query,提取其中的data字段的值,比如用户点击了"领取优惠券",data字段可能是"coupon_12345",你就可以执行对应的操作了,比如发优惠券链接,加群等等。

别忘了给bot设置webhook地址,setWebhook方法。流程:按钮定义-回调监听-业务处理。

弘源
弘源回答于 06 月 18 日

你要给按钮加callback_data参数,这个参数是你的标识符。

当用户点击按钮时,Telegram会将CallbackQuery发送到您的服务器,并且带有这个data。

收到后,用answerCallbackQuery接口回复,然后根据data做相应操作,如发优惠券链接、邀请群组。

别忘记使用webhook来接收消息,而不是轮询。代码用python-telegram-bot库。

蔡晓畅
蔡晓畅回答于 06 月 20 日

建立一个带有按钮的键盘,结构是InlineKeyboardMarkup,每个按钮的callback_data参数设置。

当用户点击按钮时,Bot会收到CallbackQuery类型消息,data字段就是你设置的值。

用Webhook或Polling方式监听updates,识别callback_query类型提取data值,并根据不同的data值做相应操作,比如发券或拉群。

重点是要正确的解析回调数据并绑定动作,别忘了用answerCallbackQuery方法来告知用户结果。

您的答案