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

如何在python-telegram-bot 13.13中实现撤销机器人创建的所有邀请链接?

实现思路:列出并撤销机器人创建的Telegram频道邀请链接

完全可行,以下是具体实现步骤:

一、完善邀请链接的存储逻辑

生成个性化邀请链接时,必须把链接的关键元数据存入数据库,确保能精准筛选出当前机器人创建的链接(避免误处理其他管理员创建的链接):

  • 数据库表建议字段:id(主键)、invite_link(唯一索引,存储链接本身)、chat_id(频道ID)、bot_id(机器人自身的ID)、requester_name(请求者名称)、created_at(创建时间)、is_revoked(标记是否已撤销,可选)
  • 调用create_chat_invite_link成功后,立即将返回的链接对象和相关信息写入数据库

二、实现「列出链接」命令

添加权限受限的命令(比如/list_my_invites),仅允许指定管理员调用:

  1. 从数据库查询所有bot_id等于当前机器人ID且is_revoked为False的记录
  2. 将查询结果格式化输出,示例格式:

    已创建的邀请链接:

    1. 链接:https://t.me/xxx?start=xxx | 请求者:张三 | 创建时间:2024-05-20 14:30
    2. 链接:https://t.me/xxx?start=yyy | 请求者:李四 | 创建时间:2024-05-21 09:15

三、实现「批量撤销」逻辑

添加/revoke_my_invites命令(同样限管理员调用):

  1. 从数据库取出所有未撤销的机器人创建链接
  2. 循环调用bot.revoke_invite_link(chat_id=频道ID, invite_link=链接地址)(python-telegram-bot 13.13版本需传入频道ID和链接两个参数)
  3. 每成功撤销一个链接,就更新数据库中对应记录的is_revoked为True,或直接删除该记录
  4. 捕获API调用异常(比如链接已被他人撤销),跳过失败项并在最终结果中告知用户哪些链接撤销失败

四、额外优化建议

  • 给列出的每条链接添加单独撤销的按钮,用InlineKeyboard实现,点击后直接调用撤销接口并更新数据库,提升操作灵活性
  • 定期清理数据库中已撤销或过期的链接(如果生成链接时设置了expire_date),减少数据冗余
  • 在撤销前增加二次确认,避免误操作批量删除所有链接

内容的提问来源于stack exchange,提问作者KArrow'sBest

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:47:11