Как сделать бота ВК на python

[Из песочницы] Пишем чат бота для ВКонтакте на 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

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

Еще по теме:  Vk com в чем отличие

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

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

Alt text

Ключ доступа к 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 МИНУТЫ

Программирование / Олег Шпагин / Python Админ Tech

БОТ ДЛЯ ГРУППЫ 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

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