HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Python
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 08.03.2021, 17:20
Mamashin
Познавший АНТИЧАТ
Регистрация: 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 формате, кстати для его запуска не обязательно устанавливать даже питон

 
Ответить с цитированием

  #2  
Старый 08.03.2021, 17:48
wulfandr
Постоянный
Регистрация: 22.06.2018
Сообщений: 634
С нами: 4154281

Репутация: 118


По умолчанию

Цитата:
Сообщение от MiR0nov  

Всем привет! В этом гайде я возможно буду для кого то нубом, для кого то копипастом но все же решил сделать этот гайд, так как опять же не нашёл подобной темы на 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 формате, кстати для его запуска не обязательно устанавливать даже питон

таких ботов МИЛЛИАРД, если не больше. да и под каждой библиотекой есть свой документация. самый неопытный разберется
 
Ответить с цитированием

  #3  
Старый 08.03.2021, 17:59
Mamashin
Познавший АНТИЧАТ
Регистрация: 17.11.2021
Сообщений: 1,134
С нами: 2363906

Репутация: 8


По умолчанию

Цитата:
Сообщение от wulfandr  

таких ботов МИЛЛИАРД, если не больше. да и под каждой библиотекой есть свой документация. самый неопытный разберется
Скинь пожалуйста миллиард таких тем именно на bh
 
Ответить с цитированием

  #4  
Старый 08.03.2021, 19:08
clrn1w
Постоянный
Регистрация: 14.01.2019
Сообщений: 315
С нами: 3857626

Репутация: 98
По умолчанию

Годно, но лучше юзать асинхронные библиотеки
 
Ответить с цитированием

  #5  
Старый 08.03.2021, 20:22
Fott
Флудер
Регистрация: 28.06.2019
Сообщений: 3,442
С нами: 3619995

Репутация: 168


По умолчанию

Цитата:
Сообщение от MiR0nov  

Скинь пожалуйста миллиард таких тем именно на bh
То что нету на бх - не значит что их нету в интернете. А таких ботов миллион на том же хабре. Да и в репозитории к библиотеке всегда есть пример с использованием
 
Ответить с цитированием

  #6  
Старый 08.03.2021, 20:54
Mamashin
Познавший АНТИЧАТ
Регистрация: 17.11.2021
Сообщений: 1,134
С нами: 2363906

Репутация: 8


По умолчанию

Цитата:
Сообщение от FooOoott  

То что нету на бх - не значит что их нету в интернете. А таких ботов миллион на том же хабре. Да и в репозитории к библиотеке всегда есть пример с использованием
Я полностью согласен, ко всему есть документация и есть много источников например тот же хабр или github так же дают то что дал я, ну может немного по другому, а я решил просто разжевать для тех кто в принципе не разбирается в программировании и сидит по сути только на бх, я знаю что есть такие люди.

Поэтому и решил создать тему в которой разжую все до крошечки. Я не считаю что открыл америку кому то, этих ботов и на том же njs полно, но я решил просто создать гайд именно на bh.
 
Ответить с цитированием

  #7  
Старый 09.03.2021, 01:22
kfor
Участник форума
Регистрация: 01.09.2005
Сообщений: 194
С нами: 10889431

Репутация: 34
По умолчанию

vkbottle юзайте вместо vk_api
 
Ответить с цитированием

  #8  
Старый 09.03.2021, 01:57
invilso.
Участник форума
Регистрация: 17.03.2020
Сообщений: 257
С нами: 3242499

Репутация: 98
По умолчанию

Цитата:
Сообщение от Руслан1111  

vkbottle юзайте вместо vk_api
лучше всего aiohttp
 
Ответить с цитированием

  #9  
Старый 09.03.2021, 16:30
kfor
Участник форума
Регистрация: 01.09.2005
Сообщений: 194
С нами: 10889431

Репутация: 34
По умолчанию

Цитата:
Сообщение от invilso.  

лучше всего aiohttp
aiohttp используется в ботле
 
Ответить с цитированием

  #10  
Старый 24.03.2021, 01:01
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

Цитата:
Сообщение от kFor  

vkbottle юзайте вместо vk_api
Цитата:
Сообщение от invilso.  

лучше всего aiohttp
vkwave чем хуже?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.