Использование Telethon для загрузки указанного c количества сообщений из группы телеграмм - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь следовать этому ответу , используя Telethon для загрузки определенного c сообщений из группы телеграмм. Мне пришлось изменить код, потому что было много ошибок и предупреждений, и библиотека и ее классы также изменились с тех пор. Это то, что я получил до сих пор:

import os
import sys
from telethon.sync import TelegramClient
from telethon.tl.types import InputPeerChat

session_name = "<session_name>"
api_id = <api_id>
api_hash = "<api_hash>"
chat_id = <chat_id>

os.chdir(sys.path[0])

if f"{session_name}.session" in os.listdir():
    os.remove(f"{session_name}.session")

client = TelegramClient(session_name, api_id, api_hash)
await client.connect()
chat = InputPeerChat(chat_id)


client.get_messages(chat, limit=10)

однако, запустив вышеуказанный код на Jupyter, я просто получаю:

Я пытался использовать часть for msg in messages для извлечения / анализа информации, но я получаю сообщение об ошибке:

TypeError: объект coroutine не повторяется

Буду признателен, если вы поможете мне узнать, какой канонический и краткий способ загрузить указанное c количество последних сообщений в группе телеграмм с учетом идентификатора чата.

1 Ответ

0 голосов
/ 10 апреля 2020

Просто установите Права , как , от которого нужно извлечь историю сообщений, и не нужно создавать объект InputPeer.

from telethon.sync import TelegramClient

session_name = '<session_name>'
api_id = <api_id>
api_hash = '<api_hash>'

#chat = <chat id>
#chat = <user id>
#chat = 'https://t.me/group_invite_link'
chat = 'me'

client = TelegramClient(session_name, api_id, api_hash)
client.start()

messages = client.get_messages(chat, limit=5)
print(messages)

client.disconnect()

...