Answer the question
In order to leave comments, you need to log in
Bot vk not working, can you help?
import vk_api
import random
import time
from yandex_translate import YandexTranslate #Импортируем библиотеку
from vk_api.bot_longpoll import VkBotLongPoll
from vk_api.longpoll import VkLongPoll
from vk_api.longpoll import VkEventType
group_id = id из цифр
token = "токен указан"
vk = vk_api.VkApi(token=token)
longpoll = VkBotLongPoll(vk, group_id)
translate = YandexTranslate('токен указан')
#messages = vk.method("messages.getConversations", {"offset": 0, "count": 1})
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.to_me and event.text: #Если получили сообщение с текстом\
if event.text == 'Перевод': #если пришло сообщение с текстом "Перевод"
if event.from_user:
vk.messages.send( #Отправляем сообщение
user_id=event.user_id,
message='На какой язык? Указывать двумя буквами.\n Например: Русский - ru, Английский - en' #C текстом "На какой язык? Указывать двумя буквами.\n Например: Русский - ru, Английский - en". Замечание текст должен быть одной строкой
)
elif event.from_chat:
vk.messages.send( #Тоже самое, но для бесед
chat_id=event.chat_id,
message='На какой язык? Указывать двумя буквами.\n Например: Русский - ru, Английский - en'
)
flag = 0 #Шаманский танец для выхода из 2-х циклов
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.to_me and event.text: #Если получили сообщение с текстом
trTo = event.text #Сохраняем текст в переменную
if event.from_user:
vk.messages.send( #Отправляем сообщение
user_id=event.user_id,
message='Введите фразу, которую надо перевести '
)
elif event.from_chat:
vk.messages.send( #Тоже самое, но для бесед
chat_id=event.chat_id,
message='Введите фразу, которую надо перевести '
)
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: #Если получили сообщение с текстом
trNormal = 1 #Колхозный флаг для ошибки
try: #Исключение, о них поговорим ниже
trFrom = translate.detect(event.text) #Определяем язык
trResult = translate.translate(event.text, trFrom + '-' + trTo) #Переводим
except Exception as e: #Если что-то пошло не так
trNormal = 0 #Пинаем флаг ошибки
print("Exception:", e) #Пишем в консоль
pass
if trNormal == 1: #Если всё хорошо
if event.from_user:
vk.messages.send( #Отправляем сообщение
user_id=event.user_id,
message='Переведено сервисом «Яндекс.Переводчик» translate.yandex.ru\n' + str(trResult['text']))
flag = 1 #Выходим из 2-х циклов
break
elif event.from_chat:
vk.messages.send( #Тоже самое, но для бесед
chat_id=event.chat_id,
message='Переведено сервисом «Яндекс.Переводчик» translate.yandex.ru\n' + str(trResult['text']))
flag = 1
break
if trNormal == 0: #Если всё плохо
if event.from_user:
vk.messages.send( #Отправляем сообщение
user_id=event.user_id,
message='Неправильно введён язык')
flag = 1 #Выходим из 2-х циклов
break
elif event.from_chat:
vk.messages.send( #Тоже самое, но для бесед
chat_id=event.chat_id,
message='Неправильно введён язык')
flag = 1
break
if flag == 1: #Шаманский танец для выхода из 2-х циклов
break
Answer the question
In order to leave comments, you need to log in
it is written to indicate the group ID in line 12
Now you have it like this
longpoll = VkBotLongPoll(vk, group_id)
It should be something like, but instead of 253235626 your group ID
longpoll = VkBotLongPoll(vk, 253235626)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question