Сделать бота ВК на питоне

Пишу бота для группы Вконтакте на Python через Longpoll. В будущем хочу сделать игрового бота, но столкнулся с такой проблемой: у всех пользователей одна и та же переменная с одним и тем же значением. Как это исправить?

Программирование Вконтакте +3
13 августа 2020 ·
Веб-разработчик, любитель истории, космоса и всего, что связано с наукой. · 16 авг 2020

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

И еще. Между сессиями, хранить значения лучше в базе данных, а не в переменных. В переменных хранятся только те значения, которые нам нужны непосредственно в данную секнуду.

Developer: C/C++/C#/Java/Python. · 16 авг 2020

Почему то я думаю вы написали что-то в виде этого: # user_info статическая переменная класса, изменяя её значение -> изменятся значения и у других подобъектов class StoreInfo: user_info = None storeInfo = StoreInfo() storeInfo.user_info = 229 # Возможно вы имели ввиду хранение данных о каждом пользователе, чтобы данные не изменялись у всех сразу или не были. Читать далее

Создание чат бота VK на Python

1 эксперт не согласен

Извиняюсь за глупый вопрос, но как записать в этот объект число?

Показать ещё 14 комментариев
Ответы на похожие вопросы
Эксперт в области инновационных технологий и искусственного интеллекта · 12 авг 2020

Попробуйте стандартный способ var = input («Введите текст: «), если конечно ещё не пробовали этот способ. переменную с записанной строкой можно использовать дальше.

Источник: yandex.ru

Бот для ВК на питоне

UnderPrivate

Между 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», затем нажимаем «Создать ключ», там же разрешаем то что вам нужно, можете разрешить всё 😀

ЧАТ БОТ НА PYTHON ДЛЯ БЕСЕДЫ ВКОНТАКТЕ

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

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

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

Всё, теперь токен у нас есть, осталось использовать его по назначению.

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

В этой папке создаём текстовый документ с любым английским названием и меняем расширение с .txt на .py, думаю после прошлого гайда не стоит говорить как включить показ расширения на Windows 10.

Еще по теме:  Сделать парные статусы в ВК

После всего этого, открываем командную строку (Win +R, cmd) и переходим в директорию нашего скрипта который мы создали только что,

у меня это выглядит так: cd c:/python/blasthack/, у вас же cd диск:/папка/и еще папка есть есть.

Теперь вы в директории вашего скрипта, для работы с кодом который будет ниже, вам предстоит установить библиотеку vkapi, не пугайтесь это легче чем поставить лайк.

В этой же командной строке прописываем следующею команду(-_-) — pip install vkapi

После этого ждём секунд 20-30, после установки можно наконец-то приступить к написанию нашего бота, я вставлю полный закомментированный код, вы же можете просто его скопировать и вставить, вставив токен, поменяв логику общения и даже добавив пару операторов elif.

# Импортируем библиотеку 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, если у вас ошибка то командная строка или терминал скажут вам об этом и программа не запуститься.

Если вы все сделали правильно, то наш бот будет отвечать вам!

Как видим всё прекрасно работает, но я считаю это слишком простым ботом даже если добавить туда 100 ответов на определённые команды, давайте сделаем, что то чуть сложнее!

Усложнив задачу я решил прикреплением картинки на сообщение пользователя, предварительно загрузив её в любой альбом и скопировавший её url.

Отправку картинки я решил не усложнять с помощью vkupload, а решил использовать метод отправки уже загруженной в вк картинки и прикрепления текста.

# Импортируем библиотеку 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 формате, кстати для его запуска не обязательно устанавливать даже питон 🙂

Спасибо за внимание!

Источник: telegra.ph

Эхо бот вконтакте python

Это новый вид статьи, в котором мы не будем говорить про PHP, многим python превосходит php, а для начинающих он покажется проще. Данная статья будет содержать в себе следующие шаги:

Установка не занимает много времени и умений. Переходим на официальный сайт https://www.python.org/downloads/ и скачиваем установщик себе на ПК.

Запускаем установщик, обязательно поставьте галочку возле надписи Add Python 3.7 to PATH, так у вас не возникнет проблем при работе с командной строкой Windows.

После установки запускаем командую строку:

И пишем команду:


Если Вы сделали все правильно, то увидите список команд и опций

На этом установка Python успешно завершена. Переходим к установке IDE PyCharm

Переходим на сайт jetbrains.com/pycharm и скачиваем среду PyCharm Community, она бесплатная.

После чего устаналвиваем и запускаем PyCharm


Забегая вперед, у меня по умолчанию в настройках программы стоял Python 2.7

Нам нужна последняя версия, открываем File -> Settings. -> Project interpreter и из выпадающего меню выбираем последнюю версию, или добавляем ее туда нажав на Show All…

Теперь можно создавать новый проект.

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

Это код из примера, благодаря нему мы убедимся что сделали все правильно. Вставить его нужно в файл new.py предварительно удалив все оттуда, что мы написали ранее.

Для начала настроим наше сообщество.
Создаем ключ

Копируем ключ и вставляем его в наш скрипт:
Вместо ‘your_group_token‘ указываем ключ сообщества
Вместо ‘your_group_id‘ указываем ID нашего сообщества

Теперь переходим во вкладку Long Poll APIи включаем его

Далее, обязательно включаем тип событий, это частая ошибка при создании ботов, забыв включить события, бот не будет работать! Выбираем все что есть.

Вернемся к нашему коду. Давайте запустим наш скрипт и проверим как он будем обрабатывать события, запускаем скрипт:

Давайте покинем сообщество и снова вступим в него:

В консоли мы сразу увидели последние события. Немного добавим строк в наш код, и научим отвечать наше сообщество сообщением в ЛС на одно из событий:

Импортируем:
После:
Добавляем:
И отправляем сообщение самому пользователю:

Полный код:
напишем любое сообщение нашему боту и получим ответ:

Как узнать названия других событий? Они будут выводится в консоли, так как в коде используется:

Тут мы получили 2 события:

VkBotEventType.WALL_POST_NEW — Новый пост
VkBotEventType.GROUP_OFFICERS_EDIT — Выдача админ прав в самой группе

Еще по теме:  В каком году был создан ВК

Документация и больше примеров можно посмотреть на GitHub . Если Вам интересен этот язык и вы хотите видеть больше статей по Python, пишите в комментарии об этом!

И все же в чем разница между CallBack API и Long Poll API? А разница есть и она большая.
Когда Вы используете CallBack API, ВК сам отправляет Вам происходящее событие на сервер, нам остается только получить его и обработать, у Long Poll API все наоборот, ВК ничего не отправляет, а хранит все события у себя на серверах, Вам нужно самому их получать и обрабатывать, Long Poll API подходит для высоко нагруженных проектов, в идеале советуем использовать оба типа получения событий. На этом наша статья подходит к концу, в следующий раз мы напишем как запустить Long Poll используя PHP, всем хорошего кодинга и настроения

Бот для VK на Python

Пример простого бота для ВКонтакте на Python 3. Обработка событий с использованием Bots Long Poll API, голосовые сообщения генерируются с помощью Яндекс.SpeechKit.

Сообщество бота: https://vk.com/vkpython. Бот отправляет в ответ на любое сообщение картинку и голосовое сообщение с именем собеседника.

Подготовка к использованию

pip3 install vk requests

Получение ключа доступа VK API

Ключ доступа к VK API можно получить в настройках сообщества, там же нужно включить Long Poll API, как минимум для доступа к сообщениям и управления сообществом.

Сделать это можно перейдя в «Управление сообществом» -> «Работа с API» -> «Ключи доступа», «Long Poll API».

Получение ключа доступа Яндекс.SpeechKit

Переходим в кабинет разработчика, нажимаем «Получить ключ» и выбираем «SpeechKit Cloud».

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

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

Ну прям совсем для новичков

Как оно работает?

Long Polling — это технология, которая позволяет получать данные о новых событиях с помощью «длинных запросов». Сервер получает запрос, но отправляет ответ на него не сразу, а лишь тогда, когда произойдёт какое-либо событие (например, придёт новое сообщение), либо истечёт заданное время ожидания.

Говоря русским языком, мы отправляем на сервер запрос, а он в свою очередь тыкает вконтакте если там произойдёт что либо, например, нам придёт сообщение он бежит и говорит об этом нам. От этого и будем плясать.

Техническая реализация

Для начала нам нужно доказать вконтакту что мы — это мы, а не кто-либо ещё. Делается это очень просто.

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

Если бот будет сидеть в группе то авторизация выглядит по другому.

— Что такое токен?
— Такая штука из циферок и буковок которую нужно получить в настройках группы. Для этого достаточно открыть раздел «Управление сообществом» («Управление страницей», если у Вас публичная страница), выбрать вкладку «Работа с API» и нажать «Создать ключ доступа».

Теперь вызовем longpool.

В сообщениях может быть не только заданный вами текст. Например:

А ещё можно прикреплять картинки.

Можно придумать ещё много всего интересного, но тут подумайте сами, а я лишь скажу что: ссылки можно делить на части. Например:

и никто не запретил нам получать ответ от пользователя на примере Википедии:

Ссылки на примеры и документацию

На этом я с вами попрощаюсь. Хорошего кодинга.

Нет связанных сообщений

Источник: mnogotolka.ru

Рейтинг
( Пока оценок нет )
Загрузка ...