2017-06-14 4 views
1

Ich versuche, eine Nachricht mit Hilfe der Telegramm-API und Telethon zu löschen.Telethon: eine Nachricht löschen

Hier ist mein Code:

from telethon import InteractiveTelegramClient 
from telethon.tl.types.input_peer_channel import InputPeerChannel 
from telethon.tl.functions.messages.delete_messages import DeleteMessagesRequest 

#... 
total_count, messages, senders = client.get_message_history(
         chat, limit=1) 
msg = messages[0] 

result = client.invoke(DeleteMessagesRequest([msg.id])) 

Vor allem aber nichts passiert, und zweitens ist es nicht richtig angezeigt werden, da msg.id wie 5 oder 220 ist und es wie ein schaut nicht einzigartige Nummer. Hier

ist die Botschaft:

msg: (message (ID: 0xc09bexxx) = (out=None, mentioned=None, media_unread=None, silent=None, post=True, id=5, from_id=None, to_id=(peerChannel (ID: 0xbdddexxx) = (channel_id=1234)), fwd_from=None, via_bot_id=None, reply_to_msg_id=None, date=2017-06-14 14:39:23, message=test33, media=None, reply_markup=None, entities=None, views=1, edit_date=None)) 

ich auch mit der Hex-Zahl versucht 0xc09bexxx aber, dass eine Ausnahme gibt.

Also, wie kann ich eine Nachricht in einem Kanal löschen?

Bisher habe ich mir diese github issue angesehen, um mit der Löschmeldung zu beginnen. Meine Vermutung ist, dass der folgende Import vielleicht nicht der richtige ist und ich die Version in das Channels-Paket importieren sollte, das eine Kanal-ID und eine Nachrichten-ID erhält?

from telethon.tl.functions.messages.delete_messages import DeleteMessagesRequest 

Antwort

2

die andere aus den Kanälen löschen Mit Paket konnte ich die löschen Botschaft zu arbeiten, aber ich bin immer noch neugierig, wie die von messages.delete_messages löschen bekommen arbeiten.

from telethon.tl.functions.channels.delete_messages import DeleteMessagesRequest 

channel = InputPeerChannel(channel_id, access_hash) 
result = client.invoke(DeleteMessagesRequest(channel, [msg.id])) 

und es wird die Nachricht aus dem Kanal löschen.

Verwandte Themen