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

如何为Telethon开发的Telegram bot实现按钮点击响应及按数发图功能

Telethon 按钮点击响应功能实现方案

你使用的是Telethon的Inline按钮,需要监听CallbackQuery事件来捕获用户的按钮点击行为,具体实现步骤和代码如下:

核心逻辑说明

你之前给每个按钮绑定的b"1"~b"5"是二进制格式的回调数据,用户点击按钮后,你可以在回调事件中拿到这部分数据,转换为数字后取对应数量的预设图片发送即可。

完整实现代码

from telethon import TelegramClient, events, Button

# 替换为你自己的api参数
API_ID = 你的API_ID
API_HASH = "你的API_HASH"
BOT_TOKEN = "你的BOT_TOKEN"

bot = TelegramClient('bot', API_ID, API_HASH).start(bot_token=BOT_TOKEN)

# 提前预设10张图片,可替换为本地路径或上传到Telegram后得到的文件ID(推荐用文件ID,发送速度更快)
IMAGE_LIST = [
    "file_id_1",
    "file_id_2",
    "file_id_3",
    "file_id_4",
    "file_id_5",
    "file_id_6",
    "file_id_7",
    "file_id_8",
    "file_id_9",
    "file_id_10",
]

# 你原有发送按钮的逻辑,建议把接收消息对象改为触发命令的用户,把"tag"替换为event.chat_id
@bot.on(events.NewMessage(pattern="opzioni"))
async def handler(event):
    bottoni = [
        [  
            Button.inline("prima opzione", b"1"), 
            Button.inline("seconda opzione", b"2")
        ],
        [
            Button.inline("terza opzione", b"3"), 
            Button.inline("quarta opzione", b"4")
        ],
        [
            Button.inline("quinta opzione", b"5")
        ]
    ]

    await bot.send_message(
        event.chat_id,
        ".       --queste sono le opzioni--       .", 
        buttons= bottoni
    )

# 新增按钮点击回调处理逻辑
@bot.on(events.CallbackQuery)
async def button_click_handler(event):
    # 把二进制回调数据转成整数,得到需要发送的图片数量
    img_num = int(event.data.decode("utf-8"))
    # 取对应数量的图片,切片容错避免超出预设的10张上限
    send_images = IMAGE_LIST[:img_num]

    # 可选:给用户点击反馈,弹出顶部提示
    await event.answer(f"正在发送{img_num}张图片")

    # 发送图片,传列表会自动合并为媒体组(多条图片在同一条消息内)
    await bot.send_file(
        event.chat_id,
        send_images,
        caption=f"你选择的{img_num}张图片"
    )

# 启动bot
bot.run_until_disconnected()

注意事项

  • 本地路径的图片首次发送后,会返回对应的Telegram文件ID,你可以缓存下来后续直接使用,不需要重复上传
  • 如果不需要合并为媒体组,改为循环调用send_file单张发送即可
  • 如果你需要点击按钮后替换掉原来的按钮消息,可以调用event.edit方法修改原有消息内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:04