Как можно получить идентификатор пользователя по его имени пользователя в Telegram без использования веб-интерфейса Telegram и библиотеки Telethon, чтобы избежать блокировки аккаунта?
Для получения имени пользователя по его идентификатору вам нужно использовать API Telegram. Необходимо отправить запрос к API с указанием идентификатора пользователя и получить в ответ JSON объект с информацией о пользователе, включая его имя пользователя. Пример кода на Python с использованием модуля `requests` для отправки запроса к API Telegram: ```python import requests telegram_api_url = "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUserProfilePhotos" def get_username_by_id(user_id): params = { "user_id": user_id } response = requests.get(telegram_api_url, params=params) data = response.json() if data["ok"]: return data["result"]["user"]["username"] else: return "Error: could not retrieve username" user_id = 1234567890 username = get_username_by_id(user_id) print(username) ``` Чтобы получить идентификатор пользователя по его имени пользователя без использования веб-интерфейса Telegram и библиотеки Telethon, можно попробовать использовать поиск по имени пользователя в поисковых системах или социальных сетях, где пользователь мог бы указать свой идентификатор Telegram. Однако, такой метод может быть неэффективным и не всегда дать точные результаты из-за приватности пользователей и ограничений поисковых систем.
Получить id по username средствами Bot API нельзя. Его можно получить только вместе с событием, связанным с пользователем. Например, пользователь нажал кнопку /start, пользователь написал боту или в общую группу с ботом, пользователь вступил в группу...
Telegram Bot API предполагает (и это абсолютно правильно!), что боты не могут писать произвольным пользователям и вообще знать об их существовании. Речь должна идти исключительно об инициативе пользователя начать коммуникацию. Иногда косвенно: например, вступая в группу, куда администратор добавил бот. Но случайных пользователей без их явно выраженного действия бот не может найти.
Конечно, это можно обойти клиентским API (telethon выкидывает из-за того что его активно используют спамеры, но это тоже решаемо). Но я бы рекомендовал зайти с другой стороны: не надо вообще делать всякую фигню, на которую Bot API не рассчитан. Никакой пользы от неё нет.
Например, если задача в том, чтобы получить список контактов для взаимодействия, то НЕ НАДО было собирать ссылки на профили пользователей. Вместо этого следовало просить их написать боту или вступить в группу. А там уже ботом словить информацию по ним и записать куда надо для ботовых задач.