С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 18.04.2019
Сообщений: 1

Бот на VK API не отправляет ответы

11.05.2019, 12:53. Показов 1178. Ответов 1

Студворк — интернет-сервис помощи студентам
Написал простенького бота на Python, но он отвечает только на сообщение "Начать". В чём проблема? Никаких ошибок и предупреждений не выдаёт
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import vk_api
import sqlite3 as sql
import time
import random
connection = sql.connect("user.sqlite", check_same_thread=False)
 
token = "d94207a38084c051e754ef819badabb201a5f0f826401635b4932ce8e7cb225b9129c6a10005a0a28afe5"
 
vk = vk_api.VkApi(token=token)
vk._auth_token()
 
connection.commit()
connection.close()
 
while True:
    try:
        messages = vk.method("messages.getConversations", {"offset": 0, "count": 200, "filter": "unanswered"})
        if messages["count"] >= 1:
            id = messages['items'][0]['last_message']['peer_id']
            body = messages['items'][0]['last_message']['text']
            if body.lower() == "Начать":
                connection = sql.connect("user.sqlite", check_same_thread=False)
                q = connection.cursor()
                q.execute("SELECT * FROM database WHERE User_ID = '%s'" % (id))
                result = q.fetchall()
                if len(result) == 0:
                    user_info = vk.method("users.get", {"user_ids": id, "fields": "first_name"})
                    user_name = user_info[0]["first_name"]
                    print(str(user_name) + " зарегестрировался")
                    q.execute(
                        "INSERT INTO database (Name, User_ID, Balance, Profit) VALUES ('%s', '%s', '%s', '%s')" % (
                        user_name,
                        id, 0, 0))
                    connection.commit()
                    connection.close()
                else:
                    q.execute("SELECT * FROM database WHERE User_ID = %s" % (id))
                    result = q.fetchall()
                    print(result)
                    user_name = result[0][1]
                vk.method("messages.send", {"peer_id": id, "message": user_name + """, мои команды:
                Инвестировать [сумма]
                Баланс
                Вывести [сумма]""", "random_id": random.randint(1, 2147483647)})
            elif "Инвестировать" in body.lower():
                connection = sql.connect("user.sqlite", check_same_thread=False)
                q = connection.cursor()
                q.execute("SELECT * FROM database WHERE User_ID = %s" % (id))
                result = q.fetchall()
                if len(result) == 0:
                    vk.method("messages.send", {"peer_id": id, "message": "Сначала напишите 'Начать'!", "random_id": random.randint(1, 2147483647)})
                else:
                    q.execute("SELECT * FROM database WHERE User_ID = %s" % (id))
                    result = q.fetchall()
                    profit = result[0][4]
                    plus = int(body.lower().split("Инвестировать ")[-1])
                if plus < 50000:
                    vk.method("messages.send", {"peer_id": id, "message": "Минимальное пополнение от 50000 монеток!", "random_id": random.randint(1, 2147483647)})
                    connection.commit()
                    connection.close()
                else:
                    q.execute("UPDATE database SET Profit = '%s' WHERE User_ID = '%s'" % ((int(profit) + plus) / 100 * 7,77, id))
                    connection.commit()
                    connection.close()
                    vk.method("messages.send", {"peer_id": id, "message": "Баланс пополнен на " + str(plus) + " монеток"})
            elif body.lower() == "Баланс":
                connection = sql.connect('user.sqlite', check_same_thread=False)
                q.execute("UPDATE database GET Balance = '%s' WHERE User_ID = '%s'" % (int(money) + plus, id))
                connection.commit()
                connection.close()
                vk.method("messages.send", {"peer_id": id, "message": "Ваш баланс: " + str(money) + " монеток \n Ваша прибыль: " +str(profit) + " монеток", "random_id": random.randint(1, 2147483647)})
            elif "Вывести" in body.lower():
                connection = sql.connect("user.sqlite", check_same_thread=False)
                q = connection.cursor()
                q.execute("SELECT * FROM database WHERE User_ID = %s" % (id))
                result = q.fetchall()
                money = result[0][3]
                minus = int(body.lower().split("Вывести ")[-1])
                if minus > money:
                    vk.method("messages.send", {"peer_id": id, "message": "Недостаточно средств для вывода!", "random_id": random.randint(1, 2147483647)})
                    connection.commit()
                    connection.close()
                else:
                    q.execute("UPDATE database SET Balance = '%s' WHERE User_ID = '%s'" % (int(money) - minus, id))
                    connection.commit()
                    connection.close()
                    vk.method("messages.send", {"peer_id": id, "message": "Выведено " + str(money) + " монеток", "random_id": random.randint(1, 2147483647)})
    except:
        time.sleep(1)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2019, 12:53
Ответы с готовыми решениями:

VK API - бот не отправляет сообщение
Здравствуйте. Делаю бота для сообщества, пока-что тестовую версию. Вроде сделал всё в точности, как тут...

Бот не отправляет файлы
Форумчане, привет. Есть вот такой бот. Его функционал - это найти на Ютубе видео, скачать, сконвертировать его в мп3 и отправить...

Бот не отправляет аудио
Добрый день. Есть одна проблемка. Пишу бота с возможностью отправки аудио. Использую для этого асинхронную Telegram Bot API и бот скачал,...

1
0 / 0 / 0
Регистрация: 31.05.2019
Сообщений: 1
31.05.2019, 17:25
Для начала у тебя практически везде где ты ищешь в body.lower() ты ищешь текст с верхним регистром.
Цитата Сообщение от Cormented Посмотреть сообщение
elif "Вывести" in body.lower()
Вот например. body.lower() тебе вернут "вывести" а ты ищешь "Вывести", попробуй это для начала исправить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2019, 17:25
Помогаю со студенческими работами здесь

Telegram бот сап отправляет сообщения
Здраствуйте. У меня есть программа для telegram бота. На данный момент бот отвечает на определенное сообщение от пользователя. Что нужно...

Telegram бот сам отправляет сообщения
Здраствуйте. У меня есть программа для telegram бота. На данный момент бот отвечает на определенное сообщение от пользователя. Что нужно...

Бот отправляет несколько раз ответ на сообщение
Создаю бота для телеграмма в консольном приложении на С#.Столкнулся с проблемой,что раз в 10-30 запросов он отвечает дважды на одно и то же...

Бот погоды. Отправляет в исключения при наборе города
Пытаюсь сделать телеграм бота, для погоды. В телеграм подключается, при наборе символов отвечает как надо(строка 40), но при наборе города...

Бот отправляет сообщения только одному пользователю, telebot
Я новичок в написании ботов тг и столкнулся с проблемой,бут пишет все сообщения пользователю который первый запустил его. Подскажите как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru