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

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

Репутация: 8


По умолчанию

да я все же выжил.

Всем привет. Уже писал тему с ботом для вк, там мы использовали модуль vk_api(честно сказать не очень для постоянной основы).

Сегодня немного познакомлю вас с таким модулем как vkbottle, ко всем строкам в коде буду оставлять комментарии, так что не бойтесь.

Хотел бы начать с того, что данный модуль действительно удобен во многом - код, реакция на ошибки со стороны вк, структура.

НАДА:

1. Python(Желательно 3.9) - python.org

2. Любой кодовый редактор(НЕ БЛОКНОТ!) - Notepad ++, Atom, VSC, IDLE Python, PyCharm, я использую Sublime Text и вам советую.

3. Сама библиотека vkbottle - Установка: pip install vkbottle

4. Так же библиотека asyncio - pip install asyncio

Так же:

pip install requests

ВНИМАНИЕ! В данном гайде я не буду рассказывать как создать python-файл и как запустить его, так как если вы не знаете этого, данная тема будет вам довольно сложна и не понятно, советую вам начать с vk_api если так надо.

Начнём с настройки сообщества, перед этим создаем его, создаем API ключ, ставим галочки на нужные евенты, так же и с LongPoll, затем ставим самую последнию версию Long Poll Api(Советую 5.131)

Цитата:
Сообщение от Спойлер  







Затем, заходим в "Сообщения" включаем их, так же включаем возможности ботов, по желанию можно включить кнопку "Начать" и указать приветствие.


Цитата:
Сообщение от Спойлер  






Теперь копируем наш созданный API ключ, так же нам нужно ID сообщества(цифры после public....) если у вас паблик уже с аудиторией, вы можете узнать ID своего паблика тут -regvk.com

Теперь наконец-то, мы можем перейти к коду =)

Для начала импортируем нужные нам библиотеки и библиотеки которые мы установили.

Затем создадим переменные в которые поместим и передадим нужные нам данные, в нашем случае это токен и id нашей группы.

Так же, дабы не ходить во круг и около, создадим первую функцию ответа на сообщение!


One:





Код:
# - НАДА -
import
asyncio
import
requests
import
random
# - Вк -
from
typing
import
Optional
from
vkbottle
import
GroupEventType
,
GroupTypes
,
Keyboard
,
Text
,
VKAPIError
from
vkbottle
.
bot
import
Bot
,
Message
from
vkbottle
import
Keyboard
,
KeyboardButtonColor
,
Text
,
OpenLink
from
vkbottle
.
tools
import
DocMessagesUploader
# Переменные
group_id
=
'206644831'
secret
=
'ВАШ ТОКЕН'
# Для удобства
bot_token
=
secret
bot_group_id
=
group_id
vk
=
Bot
(
bot_token
,
bot_group_id
)
# Приветствие
# Есть 3 типа - private_message - ожидание\ответ только в личные сообщения группы!
# chat_message - ожидание\ответ только в беседе!
# message - ожидание\ответ и в беседе и в личные сообщения!
@vk.on.private_message
(
text
=
[
'Начать'
,
'Ку'
,
'Привет'
]
)
# Сама функция:
async
def
privet
(
message
:
Message
)
:
# Ответ на сообщение
await
message
.
answer
(
'Приветик!'
)
# Толик видиорегистратор система мене
vk
.
run_forever
(
)


Теперь сразу разберем вопрос с вложениями видео/фото/файлы и тд

В методах вк -vk.com/dev, в категории messages, есть метод attachment - отвечающий за прикрепление вложений к сообщению.

Создадим пару функций..


Two:





Код:
# - НАДА -
import
asyncio
import
requests
import
random
# - Вк -
from
typing
import
Optional
from
vkbottle
import
GroupEventType
,
GroupTypes
,
Keyboard
,
Text
,
VKAPIError
from
vkbottle
.
bot
import
Bot
,
Message
from
vkbottle
import
Keyboard
,
KeyboardButtonColor
,
Text
,
OpenLink
from
vkbottle
.
tools
import
DocMessagesUploader
# Переменные
group_id
=
'206644831'
secret
=
'ВАШ ТОКЕН'
ya
=
'doc381260583_611979108'
ya2
=
'photo381260583_457378962'
ya3
=
'video-200537102_456239073'
# Для удобства
bot_token
=
secret
bot_group_id
=
group_id
vk
=
Bot
(
bot_token
,
bot_group_id
)
# Приветствие
# Есть 3 типа - private_message - ожидание\ответ только в личные сообщения группы!
# chat_message - ожидание\ответ только в беседе!
# message - ожидание\ответ и в беседе и в личные сообщения!
@vk.on.private_message
(
text
=
[
'Начать'
,
'Ку'
,
'Привет'
]
)
# Сама функция:
async
def
privet
(
message
:
Message
)
:
# Ответ на сообщение
await
message
.
answer
(
'Приветик!'
)
# Фото
@vk.on.private_message
(
text
=
'фото'
)
async
def
photo
(
message
:
Message
)
:
await
message
.
answer
(
'Вот твоя фотка '
,
attachment
=
ya2
)
# Видео
@vk.on.private_message
(
text
=
'видео'
)
async
def
video
(
message
:
Message
)
:
await
message
.
answer
(
'Вот твое видео '
,
attachment
=
ya3
)
# Файл
@vk.on.private_message
(
text
=
'файл'
)
async
def
file
(
message
:
Message
)
:
await
message
.
answer
(
'Вот твой файл '
,
attachment
=
ya
)
# Толик видиорегистратор система мене
vk
.
run_forever
(
)


Цитата:
Сообщение от Спойлер  








Теперь рассмотрим клавиатуру и напишем простое динамичное меню, так же добавим ответ на сообщение которое мы не знаем =)

Keyborad + Menu:





[CODE]
# - НАДА -
import
asyncio
import
requests
import
random
# - Вк -
from
typing
import
Optional
from
vkbottle
import
GroupEventType
,
GroupTypes
,
Keyboard
,
Text
,
VKAPIError
from
vkbottle
.
bot
import
Bot
,
Message
from
vkbottle
import
Keyboard
,
KeyboardButtonColor
,
Text
,
OpenLink
from
vkbottle
.
tools
import
DocMessagesUploader
# Переменные
group_id
=
'206644831'
secret
=
'ВАШ ТОКЕН'
ya
=
'doc381260583_611979108'
ya2
=
'photo381260583_457378962'
ya3
=
'video-200537102_456239073'
# Для удобства
bot_token
=
secret
bot_group_id
=
group_id
vk
=
Bot
(
bot_token
,
bot_group_id
)
# Приветствие
# Есть 3 типа - private_message - ожидание\ответ только в личные сообщения группы!
# chat_message - ожидание\ответ только в беседе!
# message - ожидание\ответ и в беседе и в личные сообщения!
@vk.on.private_message
(
text
=
[
'Начать'
,
'Ку'
,
'Привет'
]
)
# Сама функция:
async
def
privet
(
message
:
Message
)
:
# Ответ на сообщение
await
message
.
answer
(
'Приветик!'
)
# Фото
#@vk.on.private_message(text='фото')
#async def photo(message: Message):
# await message.answer('Вот твоя фотка ', attachment=ya2)
# Видео
#@vk.on.private_message(text='видео')
#async def video(message: Message):
# await message.answer('Вот твое видео ', attachment=ya3)
# Файл
#@vk.on.private_message(text='файл')
#async def file(message: Message):
# await message.answer('Вот твой файл ', attachment=ya)
# Меню
@vk.on.private_message
(
text
=
[
'/mm'
,
'menu'
,
'меню'
]
)
@vk.on.private_message
(
payload
=
{
'cmd'
:
'menu'
}
)
async
def
menu
(
message
:
Message
)
:
await
message
.
answer
(
# Сообщение при отправлении клавиатуры
message
=
'Меню: '
,
# Клавиатура
keyboard
=
(
# one_time - True - одноразовая клавиатура, False - постоянная клавиатура
# inline - True - клавиатура прикрепляется к сообщению(РАССМОТРИМ), False - клавиаутра в стандартном положении
# .add - добавить кнопку
# .row - отступ
# Цвета: POSITIVE - Ярко зеленый, SECONDARY(можно нечего не указывать) - БЛЕДНО БЕЛЫЙ
# PRIMARY - СИНИЙ, NEGATIVE - КРАСНЫЙ
Keyboard
(
one_time
=
False
,
inline
=
False
)
.
add
(
Text
(
'Инфа'
)
,
color
=
KeyboardButtonColor
.
POSITIVE
)
.
add
(
Text
(
'ЛУЧШИЙ ПОРТАЛ'
)
,
color
=
KeyboardButtonColor
.
NEGATIVE
)
.
row
(
)
.
add
(
Text
(
'Магаз'
)
,
color
=
KeyboardButtonColor
.
PRIMARY
)
)
)
@vk.on.private_message
(
text
=
'Магаз'
)
async
def
magaz
(
message
:
Message
)
:
await
message
.
answer
(
message
=
'Пятерочка: '
,
keyboard
=
(
Keyboard
(
one_time
=
False
,
inline
=
False
)
.
add
(
Text
(
'Сигареты'
)
,
color
=
KeyboardButtonColor
.
POSITIVE
)
.
add
(
Text
(
'Чипсы'
)
,
color
=
KeyboardButtonColor
.
POSITIVE
)
.
row
(
)
.
add
(
Text
(
'Блейзуха'
)
,
color
=
KeyboardButtonColor
.
POSITIVE
)
.
add
(
Text
(
'Круггетсы'
)
,
color
=
KeyboardButtonColor
.
NEGATIVE
)
.
row
(
)
.
add
(
Text
(
'Назад'
,
payload
=
{
'cmd'
:
'menu'
}
)
)
)
)
#



Цитата:
Сообщение от Спойлер  












Вроде бы все, прикреплю исходный файл к теме, так же видео дабы показать как это все работает =)

Если у вас есть срочные вопросы можете задавать их напрямую в
вк(кликабельно), а так пишите в данной теме.

Думаю, основное я вам донёс

Видео:


p.s я импортировал модуль Random, хотел сделать отправку рандомных ответов, думаю кто знает python тот сам знает как это сделать.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.