madwayz1337, Вот тут вы не правы. Он будет ждать, если мы все сообщение (response['items'][0]['body']) будем сравнивать с точкой, а мы сравниваем только первый символ (response['items'][0]['body'][0])
Ну уже более-менее, но Вы мой вопрос не совсем правильно поняли. Мне надо, чтобы сообщение НАЧИНАЛОСЬ с точки, а дальше какие символы - не важно. То есть: ".набор_букв"
while True:
response = vk.method('messages.get',
values)
if response['items']:
values['last_message_id'] = response['items'][0]['body']
for item in response['items']:
msg_body = response['items'][0]['body']
сmdTrigger = msg_body.startswith('.')
if сmdTrigger and msg_body== '.test':
write_msg(item['chat_id'], 'Проверка.')
else:
write_msg(item['chat_id'], 'К сожалению, такой команды не существует.')
tsarevfs, не знаю, если написать ".test" то мне напишет сообщение "Проверка" и выбьет исключение ниже.. Если написать любую другую команду, которой в этом боте не существует, то напишет, что команды не существует и выбьет опять же исключение ниже. Если написать любой текст, без точки в начале, то всё равно выбьет исключение ниже(Надо, чтобы не реагировал на любой текст, который не начинается с точки).
Исключение: "vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: last_message_id not integer"
madwayz1337, исключение, о котором вы говорите, не имеет отношения к этому коду. Найдите в момент вызова какой API команды оно возникает. Сообщения об ошибках полезно читать "last_message_id not integer". Значит вместо параметра last_message_id вы передаете что-то неправильное (вероятно строчку с числом, вместо числа).
Сейчас ваш код написан так, что сообщение без точки и несуществующие комманды с точкой будут попадать в else ветку. Если хотите совсем игнорировать сообщения без точки, вам потребуется больше проверок.