Создание Python Бота в Вконтакте №1
Что узнаете:
В этой статье вы узнаете как создавать простого эхо бота в ВК на языке Python. Вы можете просто копировать строки кода, но заменив некоторые данные, чтобы бот работал у вас в группе.
Создание группы для получения API-Токена:
С начала вам нужно перейти в раздел сообщества во Вконтакте, там нажать на кнопку "Создать сообщество"
Затем выбираем какую группы вы хотите создать, выбираем первую во втором ряду "Группа по интересам"
Когда создадим группу, заходим в раздел "Управление" в своей группе
Затем нажимаем на кнопку "Работа с API"
Далее в открывшимся окне нажимаем "Long Poll API"
После это выбирайте все так же как на фотографии ниже
После этого кликаем назад на "Ключ доступа", а затем нажимаем на кнопку "Создать ключ"
Выбираем все так же как и на картинке ниже для получения сообщений и создаем токен. При создание вам позвонит бот, или отправится сообщение с кодом
Копируем появившийся токен, он нам ещё пригодится
Качаем нужную библиотеку:
В командой строке cmd пишем такую команду
pip install vk_api
Теперь пишем самого бота
Для начала Импортируем нужные методы:
import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
Теперь в ходим ботом в группу, но заменяем "Api-Token" на свой токен который вы скопировали и "ID-Сообщества" на ID-вашего сообщества :
vk_session = vk_api.VkApi(token = "Api-Token", api_version = 5.95) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, ID-Сообщества)
После входа начинаем слушать события для получения сообщений:
for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW:
Сейчас я вам покажу какие типы сообщений я знаю:
Откуда пришло сообщение:
event.object.peer_id
ID-пользователя сообщения
event.object.from_id
Текст сообщения:
event.object.text
А теперь от куда могу приходить сообщения:
Сообщения с беседы:
if event.object.peer_id != event.object.from_id:
Сообщения от пользователя:
if event.object.peer_id == event.object.from_id:
Мы можем получать сообщения, теперь научимся их отправлять:
vk.messages.send(peer_id = event.object.peer_id, message = f"{event.object.text}", random = 0)