Почему при запуске скрипта telethon завершаются все сессии?
Я написал скрипт на telethon, но после авторизации и создания файла сессии почему-то все сессии в телеграме завершаются, то есть происходит выход аккаунта телеграм со всех устройств. По итогу на всех устройствах приходиться заново входить в аккаунт, а скрипт не работает, потому что телеграм завершает сессию клиента telethon. Я пробовал разные скрипты, свои и чужие, но все дают один и тот же результат. В чём может быть проблема?
У меня есть небольшое свое приложение на python, которое мониторит определенные группы и пересылает в мою группу определенные сообщения
До поза вчерашнего дня все работало отлично.
Я не менял приложение и ни чего не менял.
НО!
Со вчера при авторизации сессии в своем API приложении и старте приложение
закрываются вообще все активные сессии у меня на телефоне и компьютере, хотя ни я и ни кто либо не завершал сеансы. И так же сам Апи не работает,
я получаю такую ошибку и приложение не работает:
"The authorization has been invalidated, because of the user terminating all sessions"
(Перевод: Авторизация была признана недействительной, так как пользователь завершил все сеансы)
Spam info bot пишет, что нету ни каких ограничении
«Ваш аккаунт свободен от каких-либо ограничений.»
Можете уточнить, такая проблема только у меня?
Может это какое то заувалированное ограничение от телеграма? Или это какой то баг?
Пробовал запускать и на другом компьютере в другой сети. И даже другое приложение под другим аккаунтом. Тоже самое теперь получаю.
Так же с этим приложением работает аккаунт моего товарища, и у него нет таких проблем.
И я не могу понять, что не так.
Какие пути решения данной проблемы.
Спасибо большое. Очень жду вашего ответа и любую дополнительную информацию. Так как не понимаю что происходит.
Поиски в интернете не дают результаты. Поддержка телеграм не отвечает. Написал им на 4 разные почты)
Скрипт на котором валятся все сеансы на всех устройствах:
# Асинхронная функция для выполнения операций
async def main():
# Получаем информацию о статусе аккаунта
status = await client(functions.account.GetAccountTTLRequest())
Такая же история. Любой(!) вызываемый метод API отрабатывает разово, после чего происходит дисконнект на всех устройствах.
Достаточно уже такого примитивного кода, чтобы произошел log_out на всех устройствах.
И более того, похоже что не на всех пользователей эта политика изначально распространялась. На старых! симках у меня всё нормально работало, на новых - выкидывало. НО! Недавно "они" добрались и до старых номеров.
from telethon import TelegramClient
client = TelegramClient('my_session', 11111111, '34rf3frwetg4554ftr')
await client.start()
await client.send_message('me', 'Hello to myself!')
nktknshn написал рабочее решение, работает больше 6 месяцев отлично.
Передайте конструктору класса TelegramClient параметр system_version="4.16.30-vxCUSTOM". Можно так же передать какие-нибудь device_model и app_version. Сервера телеги по какой-то причине (видимо абьюза со стороны спамеров) начинает ограничивать стандартный "юзер агент", генерируемый telethon.
Передайте конструктору класса TelegramClient параметр system_version="4.16.30-vxCUSTOM". Можно так же передать какие-нибудь device_model и app_version. Сервера телеги по какой-то причине (видимо абьюза со стороны спамеров) начинает ограничивать стандартный "юзер агент", генерируемый telethon.
я верно понял, что вот такая конструкция, со слов nktknshn , должна сработать и стать причиной победы над постоянными логАутами сразу после запуска скрипта:
?
Не могу щас проверить на двух своих акках ТГшных, т.к. схлопотал бан на 24ч на обоих из них (как раз за попытки разобраться с Телетоном), но нашел эту ветку и руки, что называется, чешутся, чтобы удостоверить поскорее)
Заранее спасибо
Проблема может быть в том, что вы неправильно используете файл сессии. Сессия хранится в файле на компьютере, а не в телеграме. При каждом запуске скрипта вы должны указывать файл сессии с помощью аргумента session_name. Если вы хотите использовать тот же файл сессии, что и в предыдущем запуске, укажите тот же самый аргумент. Если вы хотите создать новый файл сессии, укажите новое имя файла.
У меня есть небольшое свое приложение на python, которое мониторит определенные группы и пересылает в мою группу определенные сообщения
До поза вчерашнего дня все работало отлично.
Я не менял приложение и ни чего не менял.
НО!
С позавчера при авторизации сессии в своем API приложении и старте приложение
закрываются вообще все активные сессии у меня на телефоне и компьютере, хотя ни я и ни кто либо не завершал сеансы. И так же сам Апи не работает,
я получаю такую ошибку и приложение не работает:
"The authorization has been invalidated, because of the user terminating all sessions"
(Перевод: Авторизация была признана недействительной, так как пользователь завершил все сеансы)
Spam info bot пишет, что нету ни каких ограничении
«Ваш аккаунт свободен от каких-либо ограничений.»
Можете уточнить, такая проблема только у меня?
Может это какое то заувалированное ограничение от телеграма? Или это какой то баг?
Пробовал запускать и на другом компьютере в другой сети. И даже другое приложение под другим аккаунтом. Тоже самое теперь получаю.
Так же с этим приложением работает аккаунт моего товарища, и у него нет таких проблем.
И я не могу понять, что не так.
Какие пути решения данной проблемы.
Спасибо большое. Очень жду вашего ответа и любую дополнительную информацию. Так как не понимаю что происходит.
Поиски в интернете не дают результаты. Поддержка телеграм не отвечает. Написал им на 4 разные почты)
Скрипт на котором валятся все сеансы на всех устройствах:
# Асинхронная функция для выполнения операций
async def main():
# Получаем информацию о статусе аккаунта
status = await client(functions.account.GetAccountTTLRequest())
CryptoDanil, у меня такая же. Просто перестало работать и все,) ни ошибок ничего. Просто при авторизации все сессии завершаются. Думаю может пересоздать приложение.
Спасибо, я запустил свой скрипт сначала с обычным .session, ввел номер телефона, сохранил StringSession. Потом в коде авторизацию:
client = TelegramClient(StringSession('session_key_from_file'), 'API_ID', 'API_HASH')
но все равно запрашивает номер телефона для авторизации....