Как стать автором
Обновить

Как переслать посты из чужого телеграмм канала в свой, с помощью Telethon

Python *
Ожидает приглашения

Доброго времени суток, читатели. Сегодня я хочу разобрать вопрос: "Как переслать чужие посты в свой телеграмм канал или чат?". В данной статье будет использован язык программирования Python и библиотека Telethon.

Предлагаю начать!

Подключение клиента Telethon

Для начала нам нужно подключить клиент Telethon для авторизации пользователя.
Чтоб подключить клиент надо получить api_id, api_hash с сайта https://my.telegram.org/apps.

from telethon import TelegramClient, events
# Тут вставляй свои данные с https://my.telegram.org/apps
api_id = 'id'
api_hash = 'hash'

client = TelegramClient('anon', api_id, api_hash)
client.start()

Разбираем первую строчку кода, а именно "импорты"

from telethon import TelegramClient, events

"Импортируем" модуль TelegramClient из библиотеки telethon, для работы и подключения клиента Telethon.

"Импортируем" модуль events из библиотеки telethon, для обработки "Ивентов", в нашем коде для "Ивента нового сообщения" (понадобится позже):

# Тут вставляй свои данные с https://my.telegram.org/apps
api_id = 'id'
api_hash = 'hash'

Сохраняем данные в переменную, полученные с сайта https://my.telegram.org/apps (id и hash вставляем на месте одноименного текста):

client = TelegramClient('anon', api_id, api_hash)
client.start()

Cохраняем наш клиент в переменную client, с передачей атрибутов в функцию,TelegramClient. Первым атрибутом называем любым именем нашу сессию (если хотите авторизоваться через другой номер телефона, просто поменяйте anon на что-то другое или удалите файл anon.session), вторым и третьим атрибутом передаем переменные api_id и api_hash.

А следующей строкой, запускаем наш клиент.

Написание кода обработки нового сообщения и создание функции по пересылке постов

Следующий шаг, надо написать код по обработке нового сообщения в определенное группе. Делается это очень легко!

@client.on(events.NewMessage(-676036365))

Давайте разберем эту строчку кода. C помощью выше "импортирована" модуля events, мы передаем атрибут NewMessage и в его атрибутах передаем chat_id группы у которой хотим брать посты, полученный от @username_to_id_bot. И вот мы уже обрабатываем новые сообщения!

Далее создаем функцию по пересылке сообщений, в специально отведенный канал или чат. Все также легко и просто!

async def main(event):
    await client.forward_messages(-676036365, event.message)

Создаем асинхронную функцию с атрибутом event , в которой прописываем команду пересылки сообщения, а именно await client.forward_messages(-676036365, event.message) , первым атрибутом мы передаем chat_id группы в которую будем пересылать сообщения, второй атрибут так и оставляем(кому интересно, это сообщение которое будем отправлять в наш чат, в данной ситуации это новое сообщения группы из которой будем пересылать)

Весь код

from telethon import TelegramClient, events

api_id = 'ID'
api_hash = 'HASH'

client = TelegramClient('anon', api_id, api_hash)
client.start()

@client.on(events.NewMessage(-676036365))
async def main(event):
    await client.forward_messages(-676036365, event.message)

client.run_until_disconnected()

В конце я добавил строчку client.run_until_disconnected(), чтобы программа работала без перебоя.

Подпишитесь, кому не лень, буду рад каждому https://t.me/programing_code1

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.