1. Как можно переслать пост из канала всем участникам, а не только определённым по ID через бота в ЛС?
Записать в переменную users всех участников канала. Я не занимался рассылкой, но мне кажется что здесь понадобится таймаут при выполнении запросов. Иначе телеграм заблокирует запросы бота.
Лучше будет держать в базе id всех пользователей канала. Завести таблицу messageToSend со структурой вида
| id | user_id | message |
| -- | ------- | ---------------------------------------- |
| 1 | 12345 | Привет, наша утренняя рассылка новостей |
| 2 | 67890 | Привет, от тебя давно не было активности |
Периодически брать задания для отправки из этой таблицы
2. Как можно отправить случайный пост из канала участнику при взаимодействии с кнопкой через бота в ЛС?
from aiogram import types, Dispatcher
from createbot import dp, shieldbot
import keyboards
from random import choice
posts = [<id постов>]
chat_id = <id канала>
@dp.message_handler(commands=['random_post', 'lucky'])
async def random_channel_post(message: types.Message):
await shieldbot.forward_message(chat_id=message.from_user.id, from_chat_id=chat_id, message_id=choice(posts))