Как отправлять сообщения в телеграме в будние дни в 8 утра?
Создаю самописного бота, подскажите как можно проверять время и отправлять сообщение с бота в 8 утра в будние дни?
Я смотрел варианты через sleep, но мне кажется что это костыль. Также есть вариант сравнивать время из переменной, но я не понимаю как можно сравнивать день недели и делать условия на отправку.
Типо нужно сделать 5 условий получается на каждый день, и внутри делать отправку этого сообщения?
Спасибо.
Думаю в API бота должна быть такая функция как добавление заданий в планировщик, если нет - можно написать самому. Слишком часто здесь появляются вопросы такого плана как отправка сообщений с интервалом и отправка сообщений по времени. Значит этот функционал необходим и его нужно реализовать в самом API бота.
Добавляешь в планировшик вызов функции в контексте бота по расписанию, а там уже проверяешь погоду, курс доллара.
Создаете запись в crontab для запуска по рабочим дням: 0 8 * * 1-5 /путь/к/скрипту
И в скрипте уже делаете отправку.
Вариант сравнивать время из переменной будет работать, только если у вас есть обращение к боту, так как, пока он не обрабатывает сообщения от пользователя, сам по себе он ничего не будет делать.
s l a v e, не совсем понимаю что вы имеете ввиду. Если вы о том, что в групповом чате бот постоянно получает сообщения, то это не гарантирует того что именно в 8 утра бот всегда будет получать сообщение
Zudwa, ну смотрите если я добавлю бота в чат, и в коде оставлю функцию с отправкой смс после команды /start. Он отправит смс и будет дальше делать то что будет в этой функции.
s l a v e, у вас ведь бот на пхп? Мне кажется вы не до конца понимаете как это все работает и как происходит общение с ботом.
Функция может выполняться условно бесконечно, если у вас, например, в ней написан бесконечный цикл. Но и в этом случае она вряд ли будет жить вечно. Есть максимальное время выполнения скрипта на сервере, есть переполнение памяти.
Общение вашего скрипта с телеграм ботом происходит посредствам запросов. Грубо говоря, когда в боте что то происходит, телеграм посылает запрос в ваш скрипт. Скрипт обрабатывает этот запрос и посылает обратно ответ и на этом его работа обычно заканчивается. Так и с другой стороны, если вам в определенный момент нужно что то отправить боту, то в этот самый определенный момент кто-то должен запустить скрипт на выполнение.
Zudwa, да на пхп. Да, я пишу бота уже не больше неделе на пхп. Да знаю про это, делал цикл на отправки сообщений. После 100 он останавливался на секунд 10-15 и продолжал пока цикл не остановится.
Это понимаю. Скорей всего пока что мне не хватает знаний на выполнение задач такого рода, но я учусь. Спасибо.