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

    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
    Ответ написан
    4 комментария