мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Настройка
- Заведите себе личное сообщество
- Нажмите «Создать». Не забудьте сохранить ключ.
Установка библиотеки
Выполните в терминале pip3 install vk_api
Пример кода бота
import vk_api # подключаем апи бота from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from vk_api.utils import get_random_id token = "тот ключ, который вы создали" # подключаемся к сообществу vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api() # включаем бота в режим приема сообщений longpoll = VkBotLongPoll(vk_session, "цифирки в адресе сообществе") # Обрабтка сообщений for event in longpoll.listen(): # вечно ждем новых сообщений if event.type == VkBotEventType.MESSAGE_NEW: # если сообщение пришло if event.obj.message["text"] != '': # и оно не пустое if event.from_user: # да еще и от пользователя user_sent = event.obj.message["text"] # возьмем его текст if user_sent == "ПРИВЕТ": # если текст равен "ПРИВЕТ" vk.messages.send( user_id=event.obj.message["from_id"], random_id=get_random_id(), message="И тебе привет") # Поздороваемся в ответ else: vk.messages.send( user_id=event.obj.message["from_id"], random_id=get_random_id(), message=user_sent) # иначе вернем сообщение назад
Пример кода бота с загрузкой сообщений
import vk_api # подключаем апи бота from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from vk_api.utils import get_random_id token = "тот ключ, который вы создали" # подключаемся к сообществу vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api() # создаем функцию отправки сообщения def post_image(api, user_id, image_path): upload_server = api.photos.getMessagesUploadServer(peer_id=user_id) upload_url = upload_server["upload_url"] files = {'photo': open(image_path, 'rb')} response = requests.post(upload_url, files=files) result = json.loads(response.text) upload_result = api.photos.saveMessagesPhoto(server=result["server"], photo=result["photo"], hash=result["hash"]) return upload_result # включаем бота в режим приема сообщений longpoll = VkBotLongPoll(vk_session, "цифирки в адресе сообществе") # Обрабтка сообщений for event in longpoll.listen(): # вечно ждем новых сообщений if event.type == VkBotEventType.MESSAGE_NEW: # если сообщение пришло if event.obj.message["text"] != '': # и оно не пустое if event.from_user: # да еще и от пользователя user_sent = event.obj.message["text"] # возьмем его текст if user_sent == "ПРИВЕТ": # если текст равен "ПРИВЕТ" upload_result = post_image(vk, user_id, "путь до картинки") # выгружаем изображение в скрытый альбом группы и сохраняем ответ от вконтакта vk.messages.send( user_id=event.obj.message["from_id"], random_id=get_random_id(), message="И тебе привет", attachment="photo%s_%s" % (user_id, upload_result[0]["id"]) ) # Поздороваемся в ответ и приложим к сообщению картинку else: vk.messages.send( user_id=event.obj.message["from_id"], random_id=get_random_id(), message=user_sent) # иначе вернем сообщение назад