Задать вопрос
ibr_98
@ibr_98

Как сделать так, чтобы бот отправлял сообщения каждый раз, когда ему написал пользователь?

Всем привет!
Подскажите, пожалуйста, как сделать так, чтобы бот отправлял сообщения каждый раз, когда ему написал пользователь? я пока понятия не имею как это реализовать, у меня бот отправляет сообщения только в том случае, если я запущу код, получается каждый раз нужно запускать код..
спасибо
вот код:
//импорт библиотеки
import vk

//авторизация все дела..
session = vk.AuthSession(app_id="", user_login="", user_password="", scope="messages, status, wall")
vk = vk.API(session)

//переменные, хранящие методы получения и отправки сообщений
mg = vk.messages.get(count="1")
ms = vk.messages.send

//условие
if mg[1]["body"]:
		ms(user_id=mg[1]['uid'], message="Здравствуй!")
  • Вопрос задан
  • 1852 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
iMukcep
@iMukcep
https://habrahabr.ru/post/319178/ - вот статья по работе с этой библиотекой, почитайте. Там под спойлером есть пример кода, немного переделаем, и вот - пробуйте:
import vk
from time import sleep


def get_msgs():
    mg = vk.messages.getDialogs(count="1", unread='1', v='5.14')  # Вместо messages.get используем messages.getDialogs, т.к. это и правильней и логичней. За подробностями - лезем в vk.com/dev
    if mg['count'] > 0:  # Если у нас есть непрочитанные сообщения, то надо бы на них ответить.
        user_id = mg['items'][0]['message']['user_id']  # Выковыриваем из json-а uID написавшего, а так же текст сообщения (для лога)
        msg_body = mg['items'][0]['message']['body']
        print("Боту написали сообщение! [Infa]: uID: " + str(user_id) + " Текст сообщения: " + msg_body)  # Отчёт о работе.
        vk.messages.send(user_id=user_id, message="Здравствуй!")  # Собственно, отвечаем.


if __name__ == '__main__':
    session = vk.AuthSession(app_id=" ", user_login="", user_password="", scope="messages, wall") # Дальше всё понятно.
    vk = vk.API(session)
    while True:
        get_msgs()
        sleep(5) # Период обновления - 5с, чтобы ВК не ругался на частые запросы.

P.s
Это вроде не самое оптимальное решение, т.к. у ВК для сообщений и прочего есть Long Poll сервер: https://vk.com/dev/using_longpoll
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽