
08.03.2021, 17:20
|
|
Познавший АНТИЧАТ
Регистрация: 17.11.2021
Сообщений: 1,134
С нами:
2363906
Репутация:
8
|
|
Всем привет! В этом гайде я возможно буду для кого то нубом, для кого то копипастом но все же решил сделать этот гайд, так как опять же не нашёл подобной темы на BH.
Между web-интерфейсом для питона, я решил делать гайды по таким стандартным вещам как самые обычные боты и не только для VK. Но сегодня у нас будет как раз таки Vk, поскольку многие когда то думали о своей группе VK в которой будет отвечать бот на определённые сообщения. Бот в данной теме будет крайне простой без классов и множества функций!
Итак, для написания бота на языке Python, нам понадобиться:
1. Python, скачать(клик), можно с официального сайта, желательно последнею версию!
2. Библиотека vk_api, pip install vk_api - главный модуль для работы с вк api.
3. Группа и страница ВК.
4. Любой текстовый редактор, но не блокнот, можете использовать Notepad++, Atom, VS Code, я же буду использовать Sublime Text 2.
5. Умение владеть компьютером и не путаться в двух вещах.
Итак, для начала нам нужно настроить нашу группу вк и создать токен.
Думаю, рассказывать как создать группу не стоит, переходим в настройки нашей группы, затем "Работа с API", затем нажимаем "Создать ключ", там же разрешаем то что вам нужно, можете разрешить всё 
Создаём токен:

После того как создали, копируем его и сохраняем где нибудь для себя, чтобы по 100 раз не брать, после этого заходим во вкладку Long Poll API, включаем его, и в типах событий и включаем то что нам нужно, я же включу только отправку фотографий и сообщения.
Long Poll API:

События:

После этого, переходим в пункт "Сообщения" и включаем их.

Так же включаем возможности бота:

Всё, теперь токен у нас есть, осталось использовать его по назначению.
Открываем диск на котором хотели бы держать вашего бота, затем создаём там папку с любым английским названием, я же буду использовать диск C.
В этой папке создаём текстовый документ с любым английским названием и меняем расширение с .txt на .py, думаю после прошлого гайда не стоит говорить как включить показ расширения на Windows 10.
После всего этого, открываем командную строку (Win +R, cmd) и переходим в директорию нашего скрипта который мы создали только что,
у меня это выглядит так: cd c:/python/blasthack/, у вас же cd диск:/папка/и еще папка есть есть.
Теперь вы в директории вашего скрипта, для работы с кодом который будет ниже, вам предстоит установить библиотеку vkapi, не пугайтесь это легче чем поставить лайк.
В этой же командной строке прописываем следующею команду(-_-) - pip install vkapi
После этого ждём секунд 20-30, после установки можно наконец-то приступить к написанию нашего бота, я вставлю полный закомментированный код, вы же можете просто его скопировать и вставить, вставив токен, поменяв логику общения и даже добавив пару операторов elif.
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 формате, кстати для его запуска не обязательно устанавливать даже питон
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|