Всем привет! У всех кодеров, кто пишет пишет софт, используя Pyrogram или Telethon, в последнее время происходит пиздец: при запуске скрипта, а именно сразу после авторизации, происходит завершение всех сессий аккаунта Telegram, который был авторизирован в скрипте. Я сам занимаюсь созданием скриптов с Pyrogram и сам столкнулся с этой проблемой. Не видел, чтобы ранее кто-то описывал способ её решения, поэтому сделаю это первым. С чем это связано? Всё дело в новой системе защиты Telegram, из-за которой и происходит завершение сессий при авторизации в скриптах. Как обойти защиту? Авторизация в Pyrogram и Telethon скриптах происходит так: вы указываете API ID и API HASH клиента, затем при запуске скрипта вводите номер телефона, который привязан к аккаунту, затем вводите код, который приходит от телеги и авторизация завершается. Скрипт создаёт файлик формата .session, где хранятся данные об авторизации в скрипте. Отсюда я вывел следующее решение: можно обойти процесс авторизации, добавив старый файл (созданный не позднее примерно начала февраля, а еще лучше - не позднее середины января 2023) с данными о сессии самостоятельно. То есть будет нужно где-то достать старый файл сессии аккаунта, API HASH и API ID клиента, соответствующие аккаунту. Единственная проблема - не понятно, где это всё можно достать, чтобы сразу был и файл сессии, и API ID и API HASH (если кто-то знает, поделитесь). Для теста я использовал старый файл session своего акка и никаких проблем не возникало. Ниже также прикрепляю код, который авторизирует аккаунт через файл .session. api_id = ваш api id api_hash = "ваш api hash" app = Client("Название файла сессии без .session") Python api_id = ваш api id api_hash = "ваш api hash" app = Client("Название файла сессии без .session") Заключение Процесс авторизации по номеру телефона (после которого как раз и происходит вылет из всех сессий) можно обойти, используя старый файл формата .session Надеюсь, что помог вам в решении этой проблемы, всем удачи!
Годно, как раз недавно столкнулся с подобным. Но как быть если старой сессии просто нет? Я так понимаю, ты дёрнул файл из каких то локальных файлов telegram?
DedVPN, но где можно покупать файлы сессий, чтобы в комплекте сразу шли Api Id и Api Hash - хуй знает
flstudio12top, мне для личного использования нужно, со своего акка) я познакомился с pyrogram относительно недавно и сразу похавал %^^на, так "повезло", что я попал как раз вот момент всех этих ограничений)
ты юзаешь Telethon? Если да, то, к сожалению, я пока помочь не могу. Но если юзаешь Pyrogram, то в конце моей статьи я оставил код, который делает авторизацию по файлу сессии. Возможно в ближайшее время напишу новую статью, если смогу протестировать одну фишку и она будет работать, вот там я и для telethon код оставлю
ну не знаю, я вчера 3 аккка на маркете купил 2 без отлёги - 1 с отлегой 2 без отлеги отлетели почти сразу после некоторых манипуляций и запуска скрипта (граббер), Но при этом я авторизовался предварительно с мобилки через код ! Последний акк с отлегой + немного прогретый (каналы, пару переписок) - так же аторизовался с телефона + некоторые манипуляции + запустил скрипт (граббер) - работает стабильно Все входы делал не через .session (ибо скрипт авторизуется через нее, но не выполняет заложенных функций, хз почему). Запускал скрипт и авторизовывался через код+2фа Кстати, API HASH юзаю не от этого аккаунта, а зарегестрированные +- пару месяцев назад на фишенные аккаунты
При входе с .session, который выдаётся на маркете, аккаунты конечно будут умирать. Если самому сделать новый .session, войдя по номеру телефона, то всё будет нормально
Aisan, не, у меня есть session creator. новая сессия если, то тебя все равно выкидываться будет, так как отлеги сессии нет.
xvkkdkmdvc, Да, я умею в виду TelegramClient('TestS', api_id, api_hash) не будет перезаписывать TestS. У меня сессия с Января, но запускаю скрипт, и все равно ****ает с учетки
Наткнулся на эту статью когда искал почему выкидывает. Выкидывало 7 раз, даже после отключения скрипта, причём с основного аккаунта. А почему не знаю, сессию использовал старую с января, но всё равно выкинуло. Вообще нету больше решений?
Можно тупо использовать proxy для создания сессии(Не знаю причину но при авторизации через ****** такой проблемы нет, по крайней мере на 10 акках я с ней так и не столкнулся) from telethon.sync import TelegramClient from telethon import connection import socks name="" #don't matter api_id= #your api id from my.telegram.org api_hash="" #your api hash from my.telegram.org proxy = (socks.SOCKS5 , proxy_ip, proxy_port) client = TelegramClient(name, api_id, api_hash,proxy=proxy) client.start() Python from telethon.sync import TelegramClient from telethon import connection import socks name="" #don't matter api_id= #your api id from my.telegram.org api_hash="" #your api hash from my.telegram.org proxy = (socks.SOCKS5 , proxy_ip, proxy_port) client = TelegramClient(name, api_id, api_hash,proxy=proxy) client.start()
в моём случае помогло обходить всё вообще без файлов сессии. просто в клиенте авторизовался под айфончик client = TelegramClient('my_session', api_id, api_hash, device_model = "iPhone 13 Pro Max", system_version = "14.8.1", app_version = "8.4", lang_code = "en", system_lang_code = "en-US") Python client = TelegramClient('my_session', api_id, api_hash, device_model = "iPhone 13 Pro Max", system_version = "14.8.1", app_version = "8.4", lang_code = "en", system_lang_code = "en-US") (файла сессии на компьютере не было, он сам его создал. так что просто достаточно вставить эти параметры в ваш скрипт)
Всем внимание, есть способ обойти эту проблему без использования старой сессии. просто в аргумаентах к TelegramClient укажите аргумент system_version="4.16.30-vxYOUR_TEXT" я не знаю почему, но это работает) client = types.TelegramClient('SESSION_NAME', api_id, api_hash, system_version="4.16.30-vxYOUR_TEXT") Code client = types.TelegramClient('SESSION_NAME', api_id, api_hash, system_version="4.16.30-vxYOUR_TEXT")
в пирограме вылетов не должно быть. а вот телетон посылает много запросов, из-за чего удаляются все сессии