电报(Telegram)API 接入时,如何实现消息的批量删除功能?​

田飞双田飞双09月12日2428

我们在用Telegram做推广,想要通过API批量删除消息,例如删除多个广告消息或群组中的垃圾信息,有什么简单的方法或接口可以实现吗?

4 个回答

安寿
安寿回答于 09 月 13 日
最佳答案

Telegram 的 API 支持批量删除消息,但要注意方式和权限。

首先要确认你为群组管理员,否则无法操作。然后使用 `deleteMessages` 方法,该方法支持传入消息 ID 列表,一次最多删除 100 条。需要注意的是,只能删除自己发送的消息或机器人有权限处理的消息。

如果你使用的是 Bot,那么需要 Bot 有 “Delete Messages” 权限,并且消息是 Bot 发出的才可以。如果是用户发送的,Bot 无法删除。

另外,批量删除时不要过于频繁调用,避免被限流。建议使用 Python + Pyrogram 或 Telethon 这类库来简化操作。

希望对清理广告有帮助。

林秀洁
林秀洁回答于 09 月 17 日

Telegram API 提供了 `deleteMessages` 方法,可以批量删除消息。

关键点:

- 需要目标聊天的 `chat_id` 和消息的 `message_ids` 列表;

- 可以在群组、频道、私聊中使用;

- 机器人需有管理员权限(群组和频道);

- 一次最多删除 100 条消息,超过需要多次调用;

- 使用方式和其他 API 请求一样,使用 POST 请求并发送 JSON 数据即可。

总之,把消息 ID 整理好,调用一下接口,批量删除就完成了。可用于清理广告、垃圾消息。

泉恬美
泉恬美回答于 09 月 18 日

Telegram Bot API 提供了删除消息的功能,可以批量删除消息,使用 `deleteMessages` 方法,属于 `messages.deleteMessages`,适用于群组、频道等。

具体操作如下:

1. 获取 Bot 权限:需要 Bot 有 `delete_messages` 权限

2. 构造请求参数:需要提供 `chat_id`,以及一个 `message_ids` 列表,里面是需要删除的消息 ID

3. 发送请求:调用 API 接口,发送删除请求

注意:一次最多删除 100 条消息,且消息必须是同个聊天中的,只有管理员或有权限的 Bot 可以执行删除操作。

如果你使用的是第三方库,比如 `python-telegram-bot` 或 `telethon`,这些库也提供了批量删除接口,更方便使用。

希望对你有帮助。

招咏思
招咏思回答于 09 月 19 日

Telegram API支持批量删消息,但要分情况:删自己发的,和删群里的其他成员发的。

如果是群管理员删其他人的消息:

1. 使用deleteMessages方法,传入chat_id和message_ids列表

2. 需要管理员权限,且消息不能超过限制(一般最多100条)

如果是删自己的消息:

1. 同样使用deleteMessages方法

2. 不需要管理员权限

注意:不能跨聊天删,每批最多100条。消息ID必须正确,否则会失败。

您的答案