Telegram Bot 如何从频道或群组中删除或移除消息或媒体

Posted

技术标签:

【中文标题】Telegram Bot 如何从频道或群组中删除或移除消息或媒体【英文标题】:Telegram Bot How to delete or remove a message or media from a channel or group 【发布时间】:2016-05-18 02:57:45 【问题描述】:

我想知道一个像照片一样删除消息或文件的例子

没找到这方面的功能教程,

【问题讨论】:

现在可以做啦! 【参考方案1】:

目前 Telegram Bot API 中没有此类功能。

UPD 2017-05-19:有一个官方方法 deleteMessage,更多信息: https://core.telegram.org/bots/api#deletemessage

https://***.com/a/43965602/1140438

【讨论】:

有不使用bot API删除消息的方法:core.telegram.org/method/messages.deleteMessages 谢谢@ihoru,这是否意味着机器人不能删除例如不正确的帖子?你确定吗? 这方面有什么解决办法吗? 其他管理员都不可能删除频道中的消息有什么解决办法吗? @MohammadRezaEsmaeilzadeh 仍然不可用。【参考方案2】:

bot api 中有两种方法可以让您编辑消息:editMessageTexteditMessageCaption。这并不理想,但您可以将其用作替代方案。

例如,将消息编辑为:

“此消息不可用。”

【讨论】:

【参考方案3】:

Bot API 3.0 正式支持 deleteMessage 方法。更多细节在这里: https://core.telegram.org/bots/api#deletemessage

https://api.telegram.org/botTOKEN/deleteMessage?chat_id=CID&message_id=MID

如您所见,有两个参数:chat_idmessage_id

您可以删除 bot 的消息或除服务消息(例如加入/离开消息)之外的其他消息(如果 bot 是管理员)。

    如果成功,它将返回以下 JSON 对象: "ok":true,"result":true

    如果您尝试删除服务消息或其他用户的消息,但 bot 不是管理员: "ok":false,"error_code":400,"description":"Bad Request: message can't be deleted".

    如果您尝试删除不存在的消息或已删除的消息: "ok":false,"error_code":400,"description":"Bad Request: message to delete not found"

【讨论】:

好答案。你能举个例子如何在javascript中管理这三种情况【参考方案4】:

https://api.telegram.org/botTOKEN/deleteMessage?chat_id=CID&message_id=MID

示例 https://api.telegram.org/bot123456789:zzzzzzzzxxxxxxxxxxyyyyyyyyyy/deleteMessage?chat_id=123456789&message_id=123456,

消息的id必须以(逗号)(,)结尾,发送消息时可以在json中看到

【讨论】:

这和the existing answer by fox.cpp有什么不同吗?【参考方案5】:
请检查下面的代码 sn-p!,下面的代码对我有用!
String chatId = String.valueOf(callbackQuery.getMessage().getChatId());
Integer messageId = callbackQuery.getMessage().getMessageId();
DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId);
try 
  execute(deleteMessage);
catch(TelegramApiException tae) 
  throw new RuntimeException(tae);

【讨论】:

【参考方案6】:

您可以转发消息并保存消息 ID,然后删除该消息。如果你能做到,你的信息就存在。

这样做:

try:
   mes=bot.forward_message(chat_id=?,from_chat_id=?,message_id=?)
   bot.delete_message(chat_id=?,message_id=mes.id)
except:
   print("your message deleted")

【讨论】:

以上是关于Telegram Bot 如何从频道或群组中删除或移除消息或媒体的主要内容,如果未能解决你的问题,请参考以下文章

Telegram Bot:从私人群组转发消息

如何使用 Telegram Bot API 获取 Telegram 频道用户列表

Telegram Bot 电报机器人合集详解版

让 Telegram Bot 回复特定消息

用户加入频道时的 Telegram Bot 事件

Mac 上删除用户或群组