Как написать бота в вк на python
Перейти к содержимому

Как написать бота в вк на python

  • автор:

Как создать чат-бота в ВКонтакте

#

#

В настоящее время чат-боты стали неотъемлемой частью онлайн-коммуникаций. Они предоставляют возможность автоматизированного общения с пользователями, что особенно полезно для бизнеса и многих других сфер. Прежде, чем начать самому создавать чат-бота ВКонтакте, необходимо провести некоторые подготовительные работы. Вот что необходимо сделать, в первую очередь. Во-первых, определите цель создания бота. Это важно, поскольку от этого зависит его функциональность. Например, чат-бот ВК может принимать заказы, отвечать на часто задаваемые вопросы или информировать о новостях. Во-вторых, зарегистрируйте аккаунт на платформе VK Mini Apps (VK MA). Это необходимо для создания и развертывания чат-бота во «ВКонтакте». Для получения доступа к этой платформе следуйте официальным инструкциям. Далее подготовьте тексты и материалы для бота. В зависимости от назначения вам потребуется подготовить текстовые описания, изображения, ссылки или другие элементы, которые он будет использовать при общении с пользователями. Подготовьте контент заранее, чтобы упростить процесс создания.

Создание группы и настройка API Long Poll

#

Для того, чтобы сделать чат-бот ВКонтакте, необходимо бесплатно и быстро создать группу, в которой будет происходить взаимодействие с ним. Для этого войдите в свой аккаунт и перейдите в раздел «Управление сообществом». Нажмите кнопку «Создать сообщество» и выберите тот тип сообщества, который подходит для ваших целей. В большинстве случаев для чат-бота ВК подходит сообщество «Сообщество» или «Группа». После создания группы перейдите в раздел «Настройки» и выберите пункт «Работа с API». Здесь необходимо включить Long Poll API. Long Poll API — это механизм, позволяющий чат-боту получать уведомления о новых сообщениях в группе. Для его активации необходимо задать ключ доступа, который будет использоваться для взаимодействия с группой. Создайте ключ доступа к API Long Poll. Для этого следуйте инструкциям в настройках группы. При этом необходимо указать права доступа к сообщениям и уведомлениям. После создания ключа сохраните его в надежном месте, так как он будет использоваться в коде вашего чат-бота для обмена данными с ВКонтакте.

Как написать код чат-бота для ВКонтакте самому

#

Это ключевой этап работы. Для создания бота в соответствии с вашими потребностями вам потребуется знание языка программирования. Давайте разберемся, как написать код. Для того, чтобы создать чат-бот для ВК, нужно использовать какой-либо из языков программирования. Наиболее популярным является Python. Мы рассмотрим создание чат-бота для ВК с помощью него. Убедитесь, что у вас установлен Python и необходимые библиотеки. Для взаимодействия с ВКонтакте необходимо использовать VK API. Вы можете установить библиотеку VK API для Python, которая позволит вам отправлять и получать сообщения от чат-бота. Создайте скрипт на Python, который будет обрабатывать запросы пользователей и отправлять ответы. Ваш бот может иметь различные функции в зависимости от цели создания. Например, если он предназначен для приема заказов, то код должен обрабатывать информацию о заказе и отправлять подтверждения. Включите в код бота использование ключа доступа к API Long Poll, который вы настроили в предыдущем пункте. Это позволит ему получать уведомления о новых сообщениях в группе. Прежде, чем выкладывать бота в открытый доступ ВКонтакте, тщательно протестируйте его в закрытой группе. Убедитесь, что он корректно обрабатывает сообщения и выполняет свои функции.

Настройка обработки команд и диалогов

Определите, какие команды будет распознавать ваш бот. Например, если он предназначен для информирования о новостях, то командой может быть «/news». Напишите обработчики для каждой команды, чтобы чат-бот мог реагировать на них и предоставлять соответствующую информацию. Диалоги позволяют осуществлять более сложное взаимодействие с пользователями. Например, если бот принимает заказы в сообществе ВКонтакте, он может задавать дополнительные вопросы и собирать информацию от пользователя. Создавайте диалоги с возможными сценариями и вопросами. Некоторым ботам может потребоваться хранить информацию о пользователях или заказах. Для хранения и извлечения необходимых данных используйте базу данных. Например, для хранения информации может пригодиться SQLite или PostgreSQL. Чтобы сделать чат-бота ВКонтакте «умным», учитывайте контекст общения. Например, если пользователь задает вопрос «Какая сегодня погода?», бот может запомнить, что последнее сообщение было о погоде, и отвечать на аналогичные вопросы без повторного уточнения ключевых слов. Настроив обработку команд и диалогов, проведите тщательное тестирование.

Как подключить и продвигать чат-бота ВК

Для того, чтобы добавить чат-бота в сообщество ВКонтакте, зайдите в настройки своей группы и найдите раздел «Сообщения». Здесь вы сможете подключить его. Укажите ключ доступа к API Long Poll и выберите события, на которые будет реагировать созданный вами бот ВК. Для привлечения внимания аудитории вы можете сделать информационный пост о нем. Расскажите о его функциональности, о том, как он может помочь пользователям и как начать с ним общаться. Разместите ссылку на созданный вами чат-бот ВК, чтобы пользователи могли начать общение с ним. Активно взаимодействуйте с пользователями в группе. Отвечайте на их вопросы, решайте проблемы и убедитесь, что они оценили полезность вашего чат-бота. Постоянный диалог с аудиторией поможет создать сообщество вокруг него. Чтобы расширить аудиторию бота, рассмотрите варианты рекламы ВКонтакте. Платная реклама и таргетированные объявления помогут привлечь больше пользователей. Постоянно оптимизируйте чат-бота на основе отзывов пользователей. Добавляйте новые функции, улучшайте интерфейс, исправляйте ошибки. Постоянное совершенствование позволит поддерживать интерес аудитории.

Создание простого чат-бота в VK на Python 3

Статья рассчитана для начинающих программистов. Метод работы программы очень прост и любой, кто умеет разбираться в синтаксисе Питона и немного знающий ООП сможет его реализовать для своих нужд. Но в принципе даже не зная никаких принципов ООП, думаю можно научиться добавлять простые функции или хотя бы в крайнем случае использовать готовые исходники из GitHub.

Что есть в этой статье?

Создание основы бота. После этого его можно будет запрограммировать как-угодно. Автоматизировать какую-то рутину или использовать как собеседник.

Улучшенная (слегка усложненная версия бота). Я решил сначала представить простой процедурный код бота, а затем слегка усложнить его, добавив функции, значительно улучшающие работу бота.

Добавление функции передачи погоды. Научим бота говорить нам погоду.

Создание бота в ВК

Начнем мы с создания бота, а именно группу в ВК.

Для это нужно зайти в «группы» → «создать сообщество».

Выберите любой тип сообщества и введите название, тематику группы.

На открывшейся странице настроек, выберите «Работа с API»

Далее, необходимо создать API-ключ.

Затем выберите нужные вам параметры с доступом для вашего API-ключа.

Скорее всего, вам придётся подтверждать действие в ВК с помощью мобильного телефона. Затем скопируйте полученный API-ключ где-нибудь в файл. Он нам еще понадобится.

Затем нужно разрешить сообщения. Для этого переходим в «сообщения» и включаем их.

Приступим к программной части бота

Мы не будем реализовывать его через запросы к ВК, а если быть точнее, просто используем библиотеку VkLongPool, которая сделает это за нас.

Для этого необходима библиотека vk_api. Установим его через pip:

python -m pip install vk_api

Но лично я работаю с виртуальным окружением Anaconda. С этим зачастую возникают проблемы при первой работе. Обычно проблема в том, что система не распознают команду «python». А решается эта проблема путем добавления его в PATH.

Приступим к самому коду:

Импортируем нужные модули:

import vk_api from vk_api.longpoll import VkLongPoll, VkEventType
def write_msg(user_id, message): vk.method('messages.send', ) # API-ключ созданный ранее token = "6a9c267cd469388709a9e9acaddbe0aa81a0abbf12239b3e597a31729ffbddb9c88e80a443554c918b8f7" # Авторизуемся как сообщество vk = vk_api.VkApi(token=token) # Работа с сообщениями longpoll = VkLongPoll(vk) # Основной цикл for event in longpoll.listen(): # Если пришло новое сообщение if event.type == VkEventType.MESSAGE_NEW: # Если оно имеет метку для меня( то есть бота) if event.to_me: # Сообщение от пользователя request = event.text # Каменная логика ответа if request == "привет": write_msg(event.user_id, "Хай") elif request == "пока": write_msg(event.user_id, "Пока((") else: write_msg(event.user_id, "Не поняла вашего ответа. ")

Функция write_msg получает id пользователя ВК , которому оно отправит сообщение и собственно само сообщение .

def write_msg(user_id, message): vk.method('messages.send', )

Авторизовавшись как сообщество и настроив longpool:

# API-ключ созданный ранее token = "6a9c267cd469388709a9e9acaddbe0aa81a0abbf12239b3e597a31729ffbddb9c88e80a443554c918b8f7" # Авторизуемся как сообщество vk = vk_api.VkApi(token=token) # Работа с сообщениями longpoll = VkLongPoll(vk) Войдем в основной цикл: # Основной цикл for event in longpoll.listen():

В нем мы циклически будем проверять на наличие event-ов. А получить тип event-а сможем с помощью event.type.

После этого получив сообщение от пользователя сможем отправить ему соответствующее письмо с помощью уже созданной функции write_msg.

Итак, мы создали очень простого бота в ВК с такой же простой реализацией. А логику бота можно программировать как душе угодно.

Теперь приступим к более реальному программированию

Создадим класс VkBot в файле vk_bot.py, который будет служить нам ботом.

class VkBot: def __init__(self, user_id): print("Создан объект бота!") self._USER_ID = user_id self._USERNAME = self._get_user_name_from_vk_id(user_id) self._COMMANDS = ["ПРИВЕТ", "ПОГОДА", "ВРЕМЯ", "ПОКА"]

И добавим туда метод с помощью которого можно получить имя пользователя через vk id.

def _get_user_name_from_vk_id(self, user_id): request = requests.get("https://vk.com/id"+str(user_id)) bs = bs4.BeautifulSoup(request.text, "html.parser") user_name = self._clean_all_tag_from_str(bs.findAll("title")[0]) return user_name.split()[0]

Это делается с помощью beatifulsoup4.

Устанавливаем если его нет:

python -m pip install bs4

На него есть достаточное количество статей, которые стоит изучить. С помощью него же создадим еще несколько методов:

# Получение времени: def _get_time(self): request = requests.get("https://my-calend.ru/date-and-time-today") b = bs4.BeautifulSoup(request.text, "html.parser") return self._clean_all_tag_from_str(str(b.select(".page")[0].findAll("h2")[1])).split()[1] # Получение погоды def _get_weather(city: str = "санкт-петербург") -> list: request = requests.get("https://sinoptik.com.ru/погода-" + city) b = bs4.BeautifulSoup(request.text, "html.parser") p3 = b.select('.temperature .p3') weather1 = p3[0].getText() p4 = b.select('.temperature .p4') weather2 = p4[0].getText() p5 = b.select('.temperature .p5') weather3 = p5[0].getText() p6 = b.select('.temperature .p6') weather4 = p6[0].getText() result = '' result = result + ('Утром :' + weather1 + ' ' + weather2) + '\n' result = result + ('Днём :' + weather3 + ' ' + weather4) + '\n' temp = b.select('.rSide .description') weather = temp[0].getText() result = result + weather.strip() return result # Метод для очистки от ненужных тэгов @staticmethod def _clean_all_tag_from_str(string_line): """ Очистка строки stringLine от тэгов и их содержимых :param string_line: Очищаемая строка :return: очищенная строка """ result = "" not_skip = True for i in list(string_line): if not_skip: if i == "

Измените параметр _get_weather на нужный город, в последствии этот метод можно будет вызывать с указанием города, а по умолчанию будет ваше указанное значение.

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

Создадим основной метод new_message, который будет обрабатывать сообщение пользователя и возвращать ответ:

def new_message(self, message): # Привет if message.upper() == self._COMMANDS[0]: return f"Привет-привет, !" # Погода elif message.upper() == self._COMMANDS[1]: return self._get_weather() # Время elif message.upper() == self._COMMANDS[2]: return self._get_time() # Пока elif message.upper() == self._COMMANDS[3]: return f"Пока-пока, !" else: return "Не понимаю о чем вы. "

Теперь вернемся к запускаемому файлу:

Импортируем класс нашего бота:

from vk_bot import VkBot

Изменим основной наш цикл:

print("Server started") for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: print('New message:') print(f'For me by: ', end='') bot = VkBot(event.user_id) write_msg(event.user_id, bot.new_message(event.text)) print('Text: ', event.text)

То есть теперь мы будем передавать полученное сообщение объекту бота, который вернет нам нужный ответ.

Это усложнение программы просто необходимо, если вы хотите дальше улучшить функционал бота:

Создайте отдельные пакеты и классы для каждой функции _get_time и _get_weather. Организуйте наследование с общего класса. И каждую новую функцию определяйте в отдельных классах, лучше всего, конечно, еще и разделить на пакеты.

Добавьте словарь с ключом идентификатора пользователя и значением объекта бота. Таким образом, не придется каждый раз в цикле создавать объект бота. К тому же, это обеспечит пользование несколькими пользователями сразу в сложных конструкциях.

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

К примеру, я научил своего бота проигрывать музыку на компьютере, открывать сайты сидя с телефона. Присылать рецепты блюд на завтрак, обед, ужин.

Вы же можете редактировать бота под себя.

Буду рад вашим идеям. По любым вопросам пишите.

Создание бота для ВКонтакте на языке програмирования Python

Создание бота для ВКонтакте на языке программирования Python

Для начала нам надо установить нужные библиотеки, а точнее vk_api.

В начале разберемся как получить токен для нашего бота.

  1. Создайте сообщество
  2. В меню справа выберете вкладку «Управление»
  3. Во вкладке «Сообщения» выберете «Настройки для ботов»
  4. Включите возможности бота
  5. В меню справа выберете вкладку «Настройки», в которой выберете «Работа с API»
  6. Создайте ключ доступа
  7. Разрешите, что вам нужно

Начинаем писать код

Импортируем что нужно:

import json import vk_api from vk_api.longpoll import VkLongPoll, VkEventType #для тех кто поместил токен в config.py from config import TOKEN

Далее пишем строки, которые просто обязательно нужны, для того что бы работать с сообществом (авторизируем бота):

vk_session = vk_api.VkApi(token=TOKEN) #для людей поместивших токен в config vk_api.VkApi(token='Ваш токен') #Для остальных vk = vk_session.get_api() longpoll = VkLongPoll(vk_session)

Далее пишем цикл, в котором будут обрабатываться сообщения:

for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: msg = event.text.lower() > Между циклом и авторизацием (назовём это место аиц) будет код позволяющий отправлять сообщения.

Для того что бы отправить сообщение надо в аиц добавить код:

def sender(id, text): vk.messages.send(user_id=id, message=text, random_id=0)

Теперь в цикл мы можем добавить обработку сообщений:

if msg == 'hi': sender('hello', id) #Первым аргументом передаем сообщение, которое он скажет, а вторым id человека

Учимся отправлять стикеры и фотографии

Для того что бы отправлять стикеры в аиц добавляем:

def send_stick(id, number): vk.messages.send(user_id=id, sticker_id=number, random_id=0)

Теперь надо получить id стикера для этого надо:

  1. Правой кнопкой мыши нажать на стикер (неважно есть ли он у вас или нет)
  2. Иследуем элемент
  3. (то что подчеркнуто красным и есть айди стикера)

Далее в цикл добавляем строку:

send_stick(id, "id стикера без кавычек")

Что бы отправить фотографию надо в первых что бы фотография была либо у вас на устройстве либо во Вконтакте (я расскажу только о втором).

Для того что бы найти айди фото надо открыть фотографию и в ссылке скопировать текст начиная со слова photo включительно и до % не включительно, например:photo-190960458_457239182

Далее в аиц добавляем:

def send_photo(id, url): vk.messages.send(user_id=id, attachment=url, random_id=0)

а в цикл добавляем:

send_photo(id, 'photo337511104_457242663')

Создание клавиатуры


Для начала импортируем

from vk_api.keyboard import VkKeyboard, VkKeyboardColor

Потом идет описание самой клавиатуры

keyboard = VkKeyboard(one_time=True) keyboard.add_button('Привет', color=VkKeyboardColor.SECONDARY) keyboard.add_button('Клавиатура', color=VkKeyboardColor.POSITIVE)

Далее добавляем в функцию которую будем вызывать keyboard=keyboard.get_keyboard()

def sender(id, text): vk.messages.send(user_id=id, message=text, random_id=0, keyboard=keyboard.get_keyboard())

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

Весь код, который был показан в данном уроке:

from vk_api.keyboard import VkKeyboard, VkKeyboardColor import vk_api from vk_api.longpoll import VkLongPoll, VkEventType from config import vk_token from vk_api.keyboard import VkKeyboard, VkKeyboardColor vk_session = vk_api.VkApi(token=vk_token) vk = vk_session.get_api() longpoll = VkLongPoll(vk_session) # Создание клавиатуры keyboard = VkKeyboard(one_time=True) keyboard.add_button('Привет', color=VkKeyboardColor.SECONDARY) keyboard.add_button('Клавиатура', color=VkKeyboardColor.POSITIVE) # Отправление сообщений с клавиатурой def sender(id, text): vk.messages.send(user_id=id, message=text, random_id=0, keyboard=keyboard.get_keyboard()) # Отправление сообщений без клавиатуры def sender_1(id, text): vk.messages.send(user_id=id, message=text, random_id=0) # Отправление стикеров def send_stick(id, number): vk.messages.send(user_id=id, sticker_id=number, random_id=0) # Отправление фото def send_photo(id, url): vk.messages.send(user_id=id, attachment=url, random_id=0) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: msg = event.text.lower() if msg == 'hi': sender(id, 'hello') send_stick(id, 112) send_photo(id, 'photo337511104_457242663') 

Удачи в ваших начинаниях!

  • боты для социальных сетей
  • python
  • вконтакте
  • вконтакте бот

Гайд Простой бот для VK на Python

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Mamashin
Известный

Автор темы

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

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

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

Всё, теперь токен у нас есть, осталось использовать его по назначению.
Открываем диск на котором хотели бы держать вашего бота, затем создаём там папку с любым английским названием, я же буду использовать диск 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', ) # Слушаем longpoll(Сообщения) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: # Чтобы наш бот не слышал и не отвечал на самого себя if event.to_me: # Для того чтобы бот читал все с маленьких букв message = event.text.lower() # Получаем 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', ) # Слушаем longpoll(Сообщения) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: # Чтобы наш бот не слышал и не отвечал на самого себя if event.to_me: # Для того чтобы бот читал все с маленьких букв message = event.text.lower() # Получаем id пользователя # Доисторическая логика общения на ифах # Перед вами структура сообщений на которые бот сможет ответить, elif можно создавать сколько угодно, if и else же могут быть только 1 в данной ситуации. # if - если, else - иначе(значит бот получил сообщение на которое не вызвана наша функция для ответа) if message == 'привет': blasthack(id, 'Привет, я бот!') elif message == 'как дела?': blasthack(id, 'Хорошо, а твои как?' ) elif message == 'картинка': # Отправляем картинку и текст bh.method("messages.send", ) else: blasthack(id, 'Я вас не понимаю! :(')

А теперь результат:

Тоже самое можно сделать и с видео, аудио, товарами, документами, записями со стены, опросами.

На этом свой гайд я хочу закончить, спасибо всем за внимание, мне будет приятно если этот гайд хоть кому то да поможет! В этом гайде мы создали самого самого простого и лёгкого бота на python.
Исходный файлик я прикреплю к данной теме, если у вас что либо не получится - постараюсь вам помочь!
Так, же чтобы не морочиться с командной строкой и постоянным вводом команды, скрипт можно компилировать с помощью библиотеки pyinstaller
Переходим в директорию со скриптом, затем:
pyinstaller -F название.py
После этого нужно будет подождать секунд 30, после чего в нашей папке появится куча других папок, но нам нужна будет папочка dist, в ней и будет наш скрипт, только уже в exe формате, кстати для его запуска не обязательно устанавливать даже питон 🙂

Вложения

easyvkbot.py
2.3 KB · Просмотры: 936

wulfandr
Известный

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

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

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

Всё, теперь токен у нас есть, осталось использовать его по назначению.
Открываем диск на котором хотели бы держать вашего бота, затем создаём там папку с любым английским названием, я же буду использовать диск 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', ) # Слушаем longpoll(Сообщения) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: # Чтобы наш бот не слышал и не отвечал на самого себя if event.to_me: # Для того чтобы бот читал все с маленьких букв message = event.text.lower() # Получаем 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', ) # Слушаем longpoll(Сообщения) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: # Чтобы наш бот не слышал и не отвечал на самого себя if event.to_me: # Для того чтобы бот читал все с маленьких букв message = event.text.lower() # Получаем id пользователя # Доисторическая логика общения на ифах # Перед вами структура сообщений на которые бот сможет ответить, elif можно создавать сколько угодно, if и else же могут быть только 1 в данной ситуации. # if - если, else - иначе(значит бот получил сообщение на которое не вызвана наша функция для ответа) if message == 'привет': blasthack(id, 'Привет, я бот!') elif message == 'как дела?': blasthack(id, 'Хорошо, а твои как?' ) elif message == 'картинка': # Отправляем картинку и текст bh.method("messages.send", ) else: blasthack(id, 'Я вас не понимаю! :(')

А теперь результат:

Тоже самое можно сделать и с видео, аудио, товарами, документами, записями со стены, опросами.

На этом свой гайд я хочу закончить, спасибо всем за внимание, мне будет приятно если этот гайд хоть кому то да поможет! В этом гайде мы создали самого самого простого и лёгкого бота на python.
Исходный файлик я прикреплю к данной теме, если у вас что либо не получится - постараюсь вам помочь!
Так, же чтобы не морочиться с командной строкой и постоянным вводом команды, скрипт можно компилировать с помощью библиотеки pyinstaller
Переходим в директорию со скриптом, затем:
pyinstaller -F название.py
После этого нужно будет подождать секунд 30, после чего в нашей папке появится куча других папок, но нам нужна будет папочка dist, в ней и будет наш скрипт, только уже в exe формате, кстати для его запуска не обязательно устанавливать даже питон 🙂

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *