Канал в Telegram — как получить access_hash?
Я очень стараюсь понять, как использовать Telegram api с телемарафоном. У меня есть несколько каналов в Telegram, где я хочу удалить старые сообщения. Используя inputpeerchannel (), мне нужны channel_id (без проблем) и channel_hash. Я не могу найти, как получить этот channel_hash по channel_id. Спасибо из германии
2 ответа
Чтобы найти канал access_hash , вы должны разрешить имя пользователя канала. Исходный метод MTProto contacts.resolveUsername#f93ccba3 получает @username и возвращает информацию о канале, включая access_hash .
В телемарафоне вам необходимо вызвать ResolveUsernameRequest, чтобы вызвать указанный выше исходный метод MTProto. . Вы можете использовать этот код для разрешения имени пользователя на access_hash :
Получить хеш доступа можно четырьмя способами:
- Из группы
- От имени пользователя
- Из списка контактов
- Из сообщения чата
Итак, если у вас есть только идентификатор, нет возможности получить хеш доступа
Telegram channel- how to get access_hash?
I try really hard to understand howto use Telegram api with telethon. I have some Channels in Telegram, where i want to delete older Messages. Using inputpeerchannel() i need channel_id (No Problem) and channel_hash. I cant findout howto get this channel_hash by channel_id. Thank you from germany
2 Answers 2
Trending sort
Trending sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.
It falls back to sorting by highest score if no posts are trending.
Switch to Trending sort
In order to find channel access_hash , you should resolve channel username. Original MTProto method contacts.resolveUsername#f93ccba3 gets @username and returns channel info including access_hash .
In telethon you need to invoke ResolveUsernameRequest to call the above original MTProto method. You may use this code to resolve username to access_hash :
Как переслать посты из чужого телеграмм канала в свой, с помощью Telethon
Доброго времени суток, читатели. Сегодня я хочу разобрать вопрос: «Как переслать чужие посты в свой телеграмм канал или чат?». В данной статье будет использован язык программирования Python и библиотека Telethon.
Подключение клиента Telethon
Для начала нам нужно подключить клиент Telethon для авторизации пользователя.
Чтоб подключить клиент надо получить api_id, api_hash с сайта https://my.telegram.org/apps.
Разбираем первую строчку кода, а именно «импорты»
«Импортируем» модуль TelegramClient из библиотеки telethon, для работы и подключения клиента Telethon.
«Импортируем» модуль events из библиотеки telethon, для обработки «Ивентов», в нашем коде для «Ивента нового сообщения» (понадобится позже):
Сохраняем данные в переменную, полученные с сайта https://my.telegram.org/apps (id и hash вставляем на месте одноименного текста):
Cохраняем наш клиент в переменную client , с передачей атрибутов в функцию, TelegramClient . Первым атрибутом называем любым именем нашу сессию (если хотите авторизоваться через другой номер телефона, просто поменяйте anon на что-то другое или удалите файл anon.session), вторым и третьим атрибутом передаем переменные api_id и api_hash .
А следующей строкой, запускаем наш клиент.
Написание кода обработки нового сообщения и создание функции по пересылке постов
Следующий шаг, надо написать код по обработке нового сообщения в определенное группе. Делается это очень легко!
Давайте разберем эту строчку кода. C помощью выше «импортирована» модуля events , мы передаем атрибут NewMessage и в его атрибутах передаем chat_id группы у которой хотим брать посты, полученный от @username_to_id_bot . И вот мы уже обрабатываем новые сообщения!
Далее создаем функцию по пересылке сообщений, в специально отведенный канал или чат. Все также легко и просто!