@VinogradovDionis
Студент

Как сделать рассылку vkbottle по времени?

Необходимо сделать рассылку по таймеру: я использую для этого библиотеку schedule.
Как только время доходит до нужного, то в консоле появляется ошибка:
NameError: name 'message' is not defined

Вот код:
vk_session = VkApi(token=tok)
vk = vk_session.get_api()
bot = Bot(token=tok)

def main_loop():
	thread = Thread(target=do_schedule)
	thread.start()

def NAME():
	vk.messages.send(
		
        message ="TEXT",
        chat_id = message.chat_id,# Если нужно выслать в чат
        #peer_id = user_id,  # Если нужно выслать в ЛС
        random_id=0)

def do_schedule():
	schedule.every().day.at("21:29").do(NAME)
	while True:
		schedule.run_pending()
		time.sleep(1)

if __name__ == '__main__':
	main_loop()
	bot.run_forever()


Я как бы понимаю, что бот не может найти беседу, в которую нужно отправить сообщение, но как указать динамически, чтобы он мог в любой беседе делать подобные рассылки - не знаю
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@Wearant
Виноградов,

from vk_api import VkApi
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType


group_id = "*****"
TOKEN = "*****"

vk_session = VkApi(token=TOKEN)
longpoll = VkBotLongPoll(vk_session, group_id)
vk = vk_session.get_api()

def main():
        for event in longpoll.listen(): 
            if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat:
                chat_id = event.chat_id
                print(chat_id)
                
if __name__ == '__main__':
    main()


Спомощью этого кода , можно узнать из какой беседы пришло сообщение ( id ) в консоли
622b9b0598d0d212979730.png
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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