Telegram server says - Bad Request: EXPIRE_DATE_INVALID

Необходимо сделать так, чтобы бот создавал одноразовую ссылку на вступление в телеграм-канал которая истечет через 1 день. Метод для создания ссылок нашёлся сразу, но возникла проблема с добавлением даты истекания ссылки.

@dp.message(Command("testpay"))
async def test(msg: types.Message):
    date = datetime.now() + timedelta(days=1)
    test = datetime.timestamp(date)
    link = await bot.create_chat_invite_link('id', str(test)[:-7], 1)
    await msg.answer(f'вот {link.invite_link}')

Если верить документации айограма, bot.create_chat_invite_link принимает дату истекания ссылки в формате Unix. Но даже с юниксом прога продолжает выдавать ошибку aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: EXPIRE_DATE_INVALID. В чем проблема?


Ответы (1 шт):

Автор решения: Ben Puls

Можно получить дату в формате Unix, например, вот таким образом:

import time


@dp.message(Command("testpay"))
async def test(msg: types.Message):
    link = await bot.create_chat_invite_link(
        'id',
        expire_date=int(time.time()) + (3600 * 24)
    )
    await msg.answer(f'вот {link.invite_link}')

Это самый простой способ реализации через метод time(). Затем к прибавляем количество секунд, по истечению которых ссылка будет недействительной.

→ Ссылка