Доброго времени суток, читатели. Сегодня я хочу разобрать вопрос: "Как переслать чужие посты в свой телеграмм канал или чат?". В данной статье будет использован язык программирования 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