Всем привет, сегодня мы с вами будем создавать своего собственного бота для Вконтакте на языке программировании Python. Бот будет совершенно простым,но разобравшись в этом, вы в дальнейшем сможете создавать сложные конструкции.
Итак, для написания бота на языке Python, нам понадобится:
1. Python, скачать(клик), можно с официального сайта, желательно последнею версию!
2. Библиотека vk_api, pip install vk_api - главный модуль для работы с вк api.
3. Группа, а также страница ВК.
4. Любой редактор кода.
Итак, для начала нам нужно настроить нашу группу вк и создать токен.
Думаю, рассказывать как создать группу не стоит, переходим в настройки нашей группы, затем "Работа с API", затем нажимаем "Создать ключ", там же разрешаем то что вам нужно, можете разрешить всё :D
Создаём токен:
После того как создали, копируем его и сохраняем где нибудь для себя, чтобы по 100 раз не брать, после этого заходим во вкладку Long Poll API, включаем его, и в типах событий и включаем то что нам нужно, я же включу только отправку фотографий и сообщения.
Long Poll API:
События:
После этого, переходим в пункт "Сообщения" и включаем их.
Так же включаем возможности бота:
Всё, теперь токен у нас есть, осталось использовать его по назначению.
Создаем папку, в которой вы бы хотели хранить своего бота Вконтакте.
В этой папке создаём текстовый документ с любым английским названием и меняем расширение с .txt на .py.
После всего этого, открываем командную строку (Win +R, cmd) и переходим в директорию нашего скрипта который мы создали только что:
cd диск:/папка/и еще папка есть есть.
Теперь необходимо установить библиотеку VK API:
pip install vkapi
Ну и теперь мы можем приступить к написанию нашего бота в Вконтакте, ниже я привел кусок кода, который вам необходимо будет просто скопировать и вставить, а там по ходу вы поймете, какие строчки - за что отвечают:
easyvkbot.py:
# Импортируем библиотеку vk_api
import vk_api
# Достаём из неё longpoll
from vk_api.longpoll import VkLongPoll, VkEventType
# Создаём переменную для удобства в которой хранится наш токен от группы
token="токен" # В ковычки вставляем аккуратно наш ранее взятый из группы токен.
# Подключаем токен и longpoll
bh = vk_api.VkApi(token = token)
give = bh.get_api()
longpoll = VkLongPoll(bh)
# Создадим функцию для ответа на сообщения в лс группы
def blasthack(id, text):
bh.method('messages.send', {'user_id' : id, 'message' : text, 'random_id': 0})
# Слушаем longpoll(Сообщения)
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
# Чтобы наш бот не слышал и не отвечал на самого себя
if event.to_me:
# Для того чтобы бот читал все с маленьких букв
message = event.text.lower()
# Получаем id пользователя
id = event.user_id
# Доисторическая логика общения на ифах
# Перед вами структура сообщений на которые бот сможет ответить, elif можно создавать сколько угодно, if и else же могут быть только 1 в данной ситуации.
# if - если, else - иначе(значит бот получил сообщение на которое не вызвана наша функция для ответа)
if message == 'привет':
blasthack(id, 'Привет, я бот!')
elif message == 'как дела?':
blasthack(id, 'Хорошо, а твои как?' )
else:
blasthack(id, 'Я вас не понимаю! :(')
После этого сохраняем файл и пишем в директории со скриптом следующие:
python название.py, если у вас ошибка то командная строка или терминал скажут вам об этом и программа не запустится.
У меня же:
python easyvkbot.py
Если вы все сделали правильно, то наш бот будет отвечать вам!
Как видим всё прекрасно работает, но я считаю это слишком простым ботом даже если добавить туда 100 ответов на определённые команды, давайте сделаем, что то чуть сложнее!
Усложнив задачу я решил прикреплением картинки на сообщение пользователя, предварительно загрузив её в любой альбом и скопировавший её url.
Отправку картинки я решил не усложнять с помощью vkupload, а решил использовать метод отправки уже загруженной в вк картинки и прикрепления текста.
Код:
easyvkbot.py:
# Импортируем библиотеку vk_api
import vk_api
# Достаём из неё longpoll
from vk_api.longpoll import VkLongPoll, VkEventType
# Создаём переменную для удобства в которой хранится наш токен от группы
token="" # В ковычки вставляем аккуратно наш ранее взятый из группы токен.
# Подключаем токен и longpoll
bh = vk_api.VkApi(token = token)
give = bh.get_api()
longpoll = VkLongPoll(bh)
# Создадим функцию для ответа на сообщения в лс группы
def blasthack(id, text):
bh.method('messages.send', {'user_id' : id, 'message' : text, 'random_id': 0})
# Слушаем longpoll(Сообщения)
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
# Чтобы наш бот не слышал и не отвечал на самого себя
if event.to_me:
# Для того чтобы бот читал все с маленьких букв
message = event.text.lower()
# Получаем id пользователя
id = event.user_id
# Доисторическая логика общения на ифах
# Перед вами структура сообщений на которые бот сможет ответить, elif можно создавать сколько угодно, if и else же могут быть только 1 в данной ситуации.
# if - если, else - иначе(значит бот получил сообщение на которое не вызвана наша функция для ответа)
if message == 'привет':
blasthack(id, 'Привет, я бот!')
elif message == 'как дела?':
blasthack(id, 'Хорошо, а твои как?' )
elif message == 'картинка':
# Отправляем картинку и текст
bh.method("messages.send", {"peer_id": id, "message": "Вот твоя картинка!", "attachment": "photo381260583_457370887", "random_id": 0})
else:
blasthack(id, 'Я вас не понимаю! :(')
А теперь результат:
Тоже самое можно сделать и с видео, аудио, товарами, документами, записями со стены, опросами.
На этом свой гайд я хочу закончить, спасибо всем за внимание, мне будет приятно если этот гайд хоть кому то да поможет! В этом гайде мы создали самого самого простого и лёгкого бота на python.
Исходный файлик я прикреплю к данной теме, если у вас что либо не получится - постараюсь вам помочь!
Так, же чтобы не морочиться с командной строкой и постоянным вводом команды, скрипт можно компилировать с помощью библиотеки pyinstaller
Переходим в директорию со скриптом, затем:
pyinstaller -F название.py
После этого нужно будет подождать секунд 30, после чего в нашей папке появится куча других папок, но нам нужна будет папочка dist, в ней и будет наш скрипт, только уже в exe формате, кстати для его запуска не обязательно устанавливать даже питон :)
Спасибо за внимание!
python
программирование
вк
создание бота
как сделать бота на python