Как написать чат-бота на Python для ВКонтакте за 5 минут |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-07-04 13:18 Для начала вам потребуется: 1) Установить Python 2 или Anaconda для Python 2 2) Установить библиотеку vk_api. Для этого в командной строке надо ввести: | pip install vk_api 3) Создать текстовый файл, вставить в него полный код (о котором пойдёт речь в самой статье ниже) и назвать, например, bot_vk.py 4) В командной строке написать python <путь к файлу>. Например: | python /home/bot_vk.py Автор статьи: Куцев Роман, пользователь habr.com (слог и пометки автора сохранены) Ниже вы узнаете, как легко можно написать примитивного чат бота для VK, используя API VK. Статья написана для новичков, чтобы показать, что нет ничего сложного в написании ботов на Python (язык программирования). Авторизация Нам понадобится библиотека vk_api. Авторизоваться в вк можно двумя способами: — Как пользователь — Как сообщество В первом случае надо будет ввести логин и пароль. Во втором случае в группе надо включить "Сообщения сообщества" и создать ключ доступа к API: Авторизация в две строчки: Отправка сообщений Теперь напишем короткую функцию, которая отправляет сообщение выбранному человеку. P.S. Сообщество может отправлять сообщения только ранее писавшим пользователям. В vk.method мы можем вызывать любой метод из VK API и передавать параметры в виде словаря. В данном случае мы вызываем метод messages.send и в качестве параметров передаем id пользователя и текст сообщения. Прием сообщений Отлично! Отправлять сообщения мы научились, осталось научиться их принимать. Для этого нам нужен метод messages.get. Несколько параметров, на которые стоит обратить внимание: 1) out — если этот параметр равен 1, сервер вернет исходящие сообщения. В нашем случае этот метод вернет все полученные сообщения за последние 60 сек, если их конечно было меньше 100, а если больше, то последние 100. В итоге мы получаем список items: Если объяснять простыми словами, то items — это то, что можно выделить в диалоге. Финальный аккорд: делаем вечный цикл, где на каждое сообщение будем отвечать "Привет, Хабр!" P.S. Мы запоминаем параметр last_message_id, чтобы в следующий раз обрабатывать только новые сообщения. Чат-бот готов! Получилось 17 строк кода: В редакторах типа Sublime Text комментарии, функции и переменные в строках кода выделены разными цветами. Редактор статей ВК такое выделение пока не поддерживает, но чтобы вы смогли скопировать текст кода, разместим его отдельно не скриншотом, а текстом: # -*- coding: utf-8 -*- import time import vk_api vk = vk_api.VkApi(login = 'login', password = 'password') #vk_api.VkApi(token = 'a02d...e83fd') #Авторизоваться как сообщество vk.auth() values = {'out': 0,'count': 100,'time_offset': 60} def write_msg(user_id, s): vk.method('messages.send', {'user_id':user_id,'message':s}) while True: response = vk.method('messages.get', values) if response['items']: values['last_message_id'] = response['items'][0]['id'] for item in response['items']: write_msg(item[u'user_id'],u'Привет, Хабр!') time.sleep(1) Остались вопросы? Пишите в комментариях! Постараемся помочь :) Подпишись, чтобы не пропустить следующую статью! ? Источник: m.vk.com Комментарии: |
|