python, Telethon. Закрывает все сессии авторизаций после выполнения кода
Это рабочий код, который выводит id и username из последних 200 пользователей (кроме скрытых), вступивших в телеграмм группу. Но после выполнения кода все сессии авторизации закрываются. Словно получаю блокировку от телеграмма. Помогите, как это исправить?
from telethon.sync import TelegramClient
import time
api_id = '87654321'
api_hash = '111222333444555666777888999000'
phone_number = '+123456789'
channel_username = 'name_group'
client = TelegramClient(phone_number, api_id, api_hash)
with client:
channel = client.get_entity(channel_username)
members = client.get_participants(channel)
for member in members:
if member.username is not None:
print(member.id, ';', member.username)
time.sleep(1)
print('END')
Ответы (1 шт):
Автор решения: name123321
→ Ссылка
Нужно было указать дополнительные параметры в конструкторе класса TelegramClient.
Конечный код выглядит так:
from telethon.sync import TelegramClient
import time
# Получить api_id, api_hash
# https://my.telegram.org/apps
api_id = 87654321
api_hash = 'aaa222BBB444ccc666DDD888eee000'
phone_number = '+123456789'
channel_username = 'name_group'
client = TelegramClient(phone_number, api_id, api_hash,
system_version='1.2.3-zxc-custom',
device_model='aboba-linux-custom',
app_version='1.0.1')
with client:
# запись в файл
file = open(r'OUT.txt', 'w', encoding="utf-8")
channel = client.get_entity(channel_username)
members = client.get_participants(channel)
for member in members:
# смотри 200 последних вступивших пользователей (ограничение тг)
if member.username is not None:
# не выводить тех, чей username скрыт
# id, username, first_name, last_name, phone
print(member.id, ';', member.username)
file.write(str(member.id) + ';' + member.username + '\n')
time.sleep(0.01)
file.close()
print('END')