@eduardfromPolska
Начинающий програмист

Schedule_date in send_message не работает pytelegrambotapi?

Всем привет, очень нужна ваша помощь. У меня очень важный вопрос о pyTelegramBotAPI. В разделе документации указано, что есть такой параметр schedule_date, вот ссылка и под фото. С помощью которого, как я правильно понимаю, можно отправить сообщение в определенное время или дату, как функция в обычной версии телеграммы, когда вы нажимаете кнопку отправки сообщения и можно выберите дату и время. Но погуглил, использования этого параметра не нашел. В документации по запланированным сообщениям говорится, что для планирования сообщения просто укажите будущее unixtime во флаге schedule_date сообщений messages.sendMessage или messages.sendMedia.

Если вы вводите будущее unixtime на 30 секунд или более, при компиляции выдается ошибка send_message () получил неожиданный аргумент ключевого слова «schedule_date».
5hk0ju928sr71.png?width=873&format=png&auto=webp&s=165ac54f1076e4b7c58aaf70af6e80cfd54d6c86

w41a0q7ypyr71.png?width=1598&format=png&auto=webp&s=6cac747e1575351e361d355be6f64d045ea5401c
  • Вопрос задан
  • 309 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Вы читаете документацию к клиентскому API. Вам нужна документация для ботов:
https://core.telegram.org/bots/api#sendmessage

А в ней sendMessage не имеет такого параметра
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@X_Starter_X
Для будущих поколений, если вам тоже нужно отправлять отложенные сообщения.
Я использовал библиотеку pyrogram. Далее мой python скрипт.

from datetime import datetime, timedelta
from pyrogram import Client
from pyrogram.types import Message, InputMediaPhoto

api_id = 12345
api_hash = "0123456789abcdef0123456789abcdef"
PostChannel = '@mytest'

NextTime = datetime.now() + timedelta(hours=3, minutes=40)
print(NextTime)

app = Client("my_account", api_id, api_hash)

def SendMsg(InMedia, InScheduleDate):
    with app:
        app.send_media_group(chat_id = PostChannel, media = InMedia, schedule_date = InScheduleDate)
        pass
    pass

def GetListPics(InImages):
    L_Out = []
    for img in InImages:
        L_Out.append(InputMediaPhoto(img))
        pass
    return L_Out
    pass

Pics = GetListPics(['pic_01.jpg', 'pic_02.jpg', 'pic_03.jpg'])
SendMsg(Pics, NextTime)


PostChannel = '@mytest' если у вас публичная группа
PostChannel = -1009999999999 если у вас приватная группа

Для получения api_id и api_hash читать по ссылке ниже.
https://docs.pyrogram.org/intro/quickstart
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы