![]() |
да я все же выжил.
Всем привет. Уже писал тему с ботом для вк, там мы использовали модуль 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) Цитата:
Цитата:
Теперь наконец-то, мы можем перейти к коду =) Для начала импортируем нужные нам библиотеки и библиотеки которые мы установили. Затем создадим переменные в которые поместим и передадим нужные нам данные, в нашем случае это токен и id нашей группы. Так же, дабы не ходить во круг и около, создадим первую функцию ответа на сообщение! One: Код:
# - НАДА -Теперь сразу разберем вопрос с вложениями видео/фото/файлы и тд В методах вк -vk.com/dev, в категории messages, есть метод attachment - отвечающий за прикрепление вложений к сообщению. Создадим пару функций.. Two: Код:
# - НАДА -Цитата:
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 тот сам знает как это сделать. |
опять вк апи не признают🙁
|
этих гайдов миллион просто, тем более на питоне, так нахуя ещё один?????
|
Цитата:
|
Цитата:
|
Зачем ты импортируешь requests и asyncio, если они не используются в твоем коде? Зачем ты устанавливаешь requests, если это синхронная либо, а vkbottle - асинхронный фреймворк? Вместо requests нужно юзать aiohttp
почему ты рекомендуешь саблайм? тот же самый pycharm намного лучше своими подсказками и форматированием кода. твои неиспользуемые импорты он бы сам убрал. Использование нормальных IDE (Pycharm) значительно ускорит скорость разработки и позволит не обращаться в документацию api вконтакте каждый раз https://github.com/vkbottle/vkbottle...ghlighting.png Очень плохой гайд, учитывая, что у vkbottle есть свой туториал для новичков, который более понятный и информативный. vkbottle/docs/tutorial/index.md at master · vkbottle/vkbottle Сustomizable asynchronous VK API framework. Contribute to vkbottle/vkbottle development by creating an account on GitHub. github.com |
Цитата:
https://forum.antichat.xyz/attachmen...a071c44ca8.png Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
| Время: 16:00 |