[Из песочницы] Пишем чат бота для ВКонтакте на python с помощью longpoll 01.11.2018 19:02
Сейчас боты стали обыденностью и находятся на каждом шагу, но если тебе нужен свой бот в социальной сети вконтакте, то это легко реализовать.
Ну прям совсем для новичков
Как установить Python?
Скачиваем, запускаем установщик.
Куда писать этот код?
В текстовый документ с расширением .py
А чем писать?
Да хоть блокнотом. Лично я рекомендую Notepad++
А как запускать?
Через командную строку.
python путь до папки с файломфайл.py
Как оно работает?
Всё очень просто, в vk api есть такая штука, называется longpool работает она так:
Long Polling — это технология, которая позволяет получать данные о новых событиях с помощью «длинных запросов». Сервер получает запрос, но отправляет ответ на него не сразу, а лишь тогда, когда произойдёт какое-либо событие (например, придёт новое сообщение), либо истечёт заданное время ожидания.
БОТ ДЛЯ ГРУППЫ VK НА PYTHON ЗА 15 МИНУТ
Говоря русским языком, мы отправляем на сервер запрос, а он в свою очередь тыкает вконтакте если там произойдёт что либо, например, нам придёт сообщение он бежит и говорит об этом нам. От этого и будем плясать.
Техническая реализация
Для начала нам нужно доказать вконтакту что мы — это мы, а не кто-либо ещё. Делается это очень просто.
import vk_api import requests session = requests.Session() login, password = ‘Ваш логин, email или телефон’, ‘Ваш пароль’ vk_session = vk_api.VkApi(login, password) try: vk_session.auth(token_only=True) except vk_api.AuthError as error_msg: print(error_msg) return
Замечание, ребята из ВК рекомендуют использовать в качестве логина номер телефона т.к. иначе можно нарваться на проверку антиробот, ту самую где тебя просят ввести недостающие цифры из номера телефона.
Если бот будет сидеть в группе то авторизация выглядит по другому.
import requests import vk_api vk_session = vk_api.VkApi(token=’токен с доступом к сообщениям и фото’)
— Что такое токен?
— Такая штука из циферок и буковок которую нужно получить в настройках группы. Для этого достаточно открыть раздел «Управление сообществом» («Управление страницей», если у Вас публичная страница), выбрать вкладку «Работа с API» и нажать «Создать ключ доступа».
Теперь вызовем longpool.
from vk_api.longpoll import VkLongPoll, VkEventType for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: #Слушаем longpoll, если пришло сообщение то: if event.text == ‘Первый вариант фразы’ or event.text == ‘Второй вариант фразы’: #Если написали заданную фразу if event.from_user: #Если написали в ЛС vk.messages.send( #Отправляем сообщение user_id=event.user_id, message=’Ваш текст’ ) elif event.from_chat: #Если написали в Беседе vk.messages.send( #Отправляем собщение chat_id=event.chat_id, message=’Ваш текст’ )
В сообщениях может быть не только заданный вами текст. Например:
БОТ ДЛЯ ГРУППЫ VK НА PYTHON ЗА 2 МИНУТЫ
import datetime vk.messages.send( user_id=event.user_id, message=’Московское время: ‘ + str(now.strftime(«%H:%M»)) )
А ещё можно прикреплять картинки.
attachments = [] from vk_api import VkUpload upload = VkUpload(vk_session) image_url = ‘Ссылка на картинку’ image = session.get(image_url, stream=True) photo = upload.photo_messages(photos=image.raw)[0] attachments.append( ‘photo<>_<>’.format(photo[‘owner_id’], photo[‘id’]) ) vk.messages.send( user_id=event.user_id, attachment=’,’.join(attachments), message=’Ваш текст’ )
Можно придумать ещё много всего интересного, но тут подумайте сами, а я лишь скажу что: ссылки можно делить на части. Например:
image_url = ‘http://сайт.com/uploads/’ + event.text + ‘.png’
и никто не запретил нам получать ответ от пользователя на примере Википедии:
import wikipedia #Модуль Википедии wikipedia.set_lang(«RU») if event.text == ‘Википедия’ or event.text == ‘Вики’ or event.text == ‘википедия’ or event.text == ‘вики’ or event.text == ‘Wikipedia’ or event.text == ‘wikipedia’ or event.text == ‘Wiki’ or event.text == ‘wiki’: #если нам пришло сообщение с текстом Википедия или Вики или . или wiki if event.from_user: #Если написали в KC vk.messages.send( user_id=event.user_id, message=’Введите запрос’ #Пишем «Введите запрос» ) elif event.from_chat: #Если написали в беседе vk.messages.send( chat_id=event.chat_id, message=’Введите запрос’ #Пишем «Введите запрос» ) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: #Пинаем longpoll if event.from_user: vk.messages.send( #Если написали в ЛС user_id=event.user_id, message=’Вот что я нашёл: n’ + str(wikipedia.summary(event.text)) #Пишем «Вот что я нашёл» И то что вернёт нам api Wikipedia по запросу текста сообщения ) break #выходим из цикла elif event.from_chat: #Если написали в беседе vk.messages.send( chat_id=event.chat_id, message=’Вот что я нашёл: n’ + str(wikipedia.summary(event.text)) #Пишем «Вот что я нашёл» И то что вернёт нам api Wikipedia по запросу текста сообщения ) break #выходим из цикла continue
Ссылки на примеры и документацию
Пример бота работающего на DuckDuckGo api
Примеры использования VK api (общие)
Документация по VK api Раз, Два
На этом я с вами попрощаюсь. Хорошего кодинга.
Источник: _pisem_cat_bota_dla_vkontakte_na_python_s_pomosu_longpoll-860081.html» target=»_blank»]pcnews.ru
trofimovdev/vkpython
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
Apr 5, 2019
Apr 15, 2019
Mar 11, 2019
README.md
Бот для 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 стал полностью платным. Если вы нашли способ получения ключа для личного некоммерческого использования, сообщите об этом.
About
Пример бота на Python для ВКонтакте
Источник: github.com
Как сделать бота вк на python
Комментарии
Популярные По порядку
Не удалось загрузить комментарии.
ВАКАНСИИ
Руководитель проекта
Москва, по итогам собеседования
Data Scientist
Красногорск, по итогам собеседования
Главный специалист по ИБ
Москва, по итогам собеседования
ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ
ООП на Python: концепции, принципы и примеры реализации
Программирование на Python допускает различные методологии, но в его основе лежит объектный подход, поэтому работать в стиле ООП на Python очень просто.
3 самых важных сферы применения Python: возможности языка
Существует множество областей применения Python, но в некоторых он особенно хорош. Разбираемся, что же можно делать на этом ЯП.
Программирование на Python: от новичка до профессионала
Пошаговая инструкция для всех, кто хочет изучить программирование на Python (или программирование вообще), но не знает, куда сделать первый шаг.
Источник: proglib.io
Python / БОТ ДЛЯ ГРУППЫ VK НА PYTHON ЗА 2 МИНУТЫ
БОТ ДЛЯ ГРУППЫ VK НА PYTHON ЗА 2 МИНУТЫ, это возможно?! Ответ: смотри в видео))) P.S. Используйте свой API ключ))) ✔ Телеграм — https://t.me/wiseplat ✔ Вступай в группу Вк — https://vk.com/wiseplat1 ✔ Подписывайся https://zen.yandex.ru/id/5e9a612424270736479fad54 ✔ Поддержи проект: https://wiseplat.org/donat Ставь лайк, если тебе понравилось видео ►► Подписывайся на канал! Нажимай колокольчик чтобы не пропустить! Код из видео, для тех, кто в позитиве: import vk_api from vk_ api.longpoll import VkLongPoll, VkEventType vk_session = vk_api.VkApi(token=»6444aced83438644e8f37c0aa1342cf4eaacd7b9618b7dd6782572badad40beda592a3886bce50b01b3a5″) session_api = vk_ session.get_ api() longpool = VkLongPoll(vk_session) def send_some_msg(id, some_text): vk_ session.method( » messages.send» , ) for event in longpool.listen( ): if event.type == VkEventType.MESSAGE_NEW: if event.to_ me: msg = event.text.lower( ) id if msg == «hi»: send_some_msg(id, «Hi friend!») бот вк,vk bot,vk bot python,python bot,python бот,бот для группы вк python,бот для группы в вк,бот для группы вк на андроид,бот вконтакте,чат бот вк,бот вконтакте лайки,как сделать бота,как сделать бота в вк,как сделать бота вк на python,как сделать бота vk
Показать больше
Войдите , чтобы оставлять комментарии.
Источник: rutube.ru