3 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊
如果您有權(quán)訪問該頻道,它就會顯示在您的聊天列表中。
您必須遍歷聊天以檢查其標(biāo)題,然后將所需的聊天存儲在變量中:
my_private_channel_id = None
my_private_channel = None
async for dialog in tg.client.iter_dialogs():
if dialog.name == "private chat name":
my_private_channel = dialog
my_private_channel_id = dialog.id
break
if my_private_channel is None:
print("chat not found")
else:
print("chat id is", my_private_channel_id)
比您可以過濾發(fā)送到 my_private_channel 的消息。

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊
您可以打印您參與的所有對話/對話。您還需要從您獲得的 id 中刪除 -100 前綴:-1001419092328 = 1419092328 (actual ID)
from telethon import TelegramClient, events
client = TelegramClient("bot", API_ID, API_HASH)
client.start()
print("?? Connected")
@client.on(events.NewMessage())
async def my_event_handler(event):
async for dialog in client.iter_dialogs():
print(dialog.name, 'has ID', dialog.id) # test ID -1001419092328
client.run_until_disconnected()
如果您想收聽特定頻道,可以使用channel_id=1419092328. 您只會收到廣播給它的消息:
from telethon import TelegramClient, events
from telethon.tl.types import PeerChannel
print(f"?? Connecting...")
client = TelegramClient("bot", API_ID, API_HASH)
client.start()
print("?? Connected")
@client.on(events.NewMessage(PeerChannel(channel_id=1419092328)))
async def my_event_handler(event):
msg = event.text
print(f"[M] {msg}")
client.run_until_disconnected()
添加回答
舉報