Как сделать бота для страницы вк. Как сделать бот вконтакте
Массовая популяризация и использование ботов в социальной сети «Вконтакте» может вдохновить администраторов различных сообществ ВК на желание установить подобную программу-бота и у себя в группе. При этом, как выполнить подобное они не представляют, прочитывая множество материалов в поисках пояснений для реализации желаемого. В данном материале я постараюсь помочь таким администраторам и расскажу о способах сделать бота в группы ВК, и какие инструменты нам в этом помогут.
Как известно, бот – это программа, которая поможет вам в автоматизации каких-либо операций. В нашем случае, бот, подключенный к сообществу «Вконтакте», может заниматься отправкой шаблонных рассылок, отвечать на сообщения пользователей, с ним можно играть в различные интерактивные игры, он порекомендует вам музыку или видео, расскажет анекдот и так далее.
Рассмотрим, как создать бота для группы в социальной сети «Вконтакте».
Способ №1. Бот «Робочат» позволят создавать ботов для сообществ
Первым из ботов, о которых я расскажу – это «Робочат». Данный бот обладает довольно простым функционалом, при этом так же незамысловат и удобен в настройке.
Для его установки перейдите на сайт robochat.io , и нажмите на кнопку «Создать бота» (при необходимости, пройдите процедуру регистрации через ваш е-мейл).
Нажмите на «Создать бота» для начала процедуры создания бота для вашего сообщества в ВК
Вы перейдёте на экран настройки бота, где вам будет необходимо подключить бота к вашему сообществу.
Нажмите на кнопку «Подключить сейчас», из открывшегося перечня выберите «Сообщество Вконтакте» и нажмите на кнопку «Подключить» справа.
Нажмите на «Подключить сейчас» для подключения бота к вашему сообществуПриложение запросит доступ к вашему аккаунту в VK (данный аккаунт должен одновременно иметь права администратора в нужном вам сообществе «Вконтакте»). Нажмите на «Разрешить».
Вы перейдёте к списку добавления сообществ «Вконтакте», в которых вы являетесь администратором. Нажмите на «Подключить» справа от нужного сообщества», а затем нажмите на «Разрешить» для доступа бота к сообщениям сообщества, его фото и видео.
Теперь вернитесь на вашу страницу на сайте Robochat.io, перейдите во вкладку «Чат-бот» слева, в которой будут располагаться три подвкладки («Основное», «Сообщения ВК», «Ключевые слова»).
Нажмите на вкладку «Чат-бот» для настройки вашего бота
Нас интересует подвкладка «Основное», где вы сможете настроить ответы вашего бота на различные запросы пользователя, в том числе используя подвкладку «Ключевые слова». Для редактирования каждого опции существует кнопка «Редактировать» возле каждого из пунктов. После настройки шаблонных ответов данный бот готов к работе. Для его активации пользователю будет необходимо нажать на кнопку «Написать сообщения» в вашей группе, и бот ответит пользователю в соответствие с выполненной вами настройкой.
Способ №2. Бот «BotVK» — автоматизированные ответы на сообщения пользователей паблика
Установка данного бота в ВК с сайта bot-vk.ru похожа по своему алгоритму на установку предыдущего бота «Робочат». При этом настройка «BotVK» также интуитивно проста, и не требует от пользователя каких-либо специальных знания по программированию
Для начала работы с данным ботом перейдите на сайт bot-vk.ru , и нажмите на кнопку «Создать бота».
Нажмите на кнопку «Создать бота» для начала подключения «BotVK» к вашей группе
Затем нажмите на кнопку «Войти или создать аккаунт», и нажмите на «Разрешить» справа внизу для предоставления приложению доступа к вашему аккаунту. Вы перейдёте в панель управления вашим ботом. Нажмите на кнопку «Подключить группу» для подключения вашей группы, выберите вашу группу в списке, и нажмите на «Подключить», а потом на «Разрешить».
Справа будет располагаться меню управления нашим ботом.
Меню управления «BotVK»Выберите там вкладку «Список ботов», а потом кликните на названии вашего бота в группе справа. Откроются настройки вашего бота, в которых вы сможете произвести довольно широкую настройку его функционала, а затем нажать на «Сохранить» внизу для фиксации изменений.
Меню настройки «BotVK» для вашей группы в VK
Как визуально выглядит процедура работы с данным ботом можно посмотреть на видео:
Способ №3. Чат-боты на сайте bots.hsstore.ru
Также вы можете воспользоваться платными ботами на сайте bots.hsstore.ru . Здесь представлены множество платных ботов для VK, функционал которых доступен за ежемесячную плату в 990 рублей. Среди них википедия-бот (присылает статьи с Википедии по запросам), бот для общения (умеет соединять вас анонимно с другим неизвестным пользователем), бот для демонстрации гороскопов и так далее.
Установка данных ботов похожа на установку в уже описанных вариантах, при этом здесь от вас также требуют деньги за платный функционал. Учитывая, что предыдущие два бота «Робочат» и «BotVK» имеют бесплатный характер, установка платных варинатов ботов выглядит довольно сомнительным решением.
Заключение
В данном материале мной было рассмотрено несколько способов сделать быстро бота в группы ВК для отправки им сообщений. Установка такого бота предполагает наличие у вашего аккаунта административных прав для руководства группой, а также предоставление боту прав для непосредственной работы с вашим сообществом. Настроив такого бота должным образом, вы получите удобный вспомогательный функционал, способный облегчить работу с множеством подписчиков вашей группе в ВК.
Нужен чат-бот, но не умеете программировать? Предлагаем подборку лучших сервисов проектирования ботов. А некоторые из них - даже бесплатны 🙂
Если вы бизнесмен, чат-боты наверняка пригодятся вам в скором времени. Звучит категорично, но это так. У компании, работающей с клиентами (то есть, у каждой бренда) найдется пара-тройка процессов для автоматизации. Боты в мессенджерах разгрузят саппорт, повысят уровень обслуживания клиентов, сократят затраты на персонал и так далее
И для этого необязательно работать онлайн. Чат-боты заменят даже официантов - и такие кейсы уже появляются в Штатах. Пофантазируем: вы заходите в любимое кафе, где завтракаете каждое утро. На стене у стойки - плакат с именем бота-официанта (найти его можно по поиску в приложениях). Вы загружаете мессенджер и пишете:
Привет, бот!
Привет, Андрей. Тебе как обычно?
Да, только эспрессо вместо сока.
Заказ принят!
Через 15 минут вам приносят завтрак. Бот, имитирующий человека, принимает заказы через мессенджер, консультирует по меню - и главное, хранит историю запросов. Поэтому необязательно каждый раз повторять одно - системе достаточно отправить «Мне как в прошлый раз», и она поймет. После оформления заказ отправляется на кухню, и чуть позже еду приносит «живой» официант.
Это не отвлеченная фантазия. Похожие боты уже внедряются в кофейнях США - и ждет первопроходцев в России. Создать такого робота достаточно просто, а взаимодействие с ним впечатляет. Как видите, автоматизация процессов чат-ботами доступна не только онлайн, но и в индустрии общепита. Боты уже умеют бронировать билеты, искать информацию в сети (текст, визуальный контент), консультировать по продуктам компании и прочее. Задумайтесь, как можно применить ботов к вашему бизнесу? И сколько они вам сэкономят?
Повторимся, создание чат-ботов - не такой сложный процесс, каким кажется. Появилось достаточно платформ, позволяющих спроектировать «робота» для мессенджеров без познаний в дизайне и кодинге. Рассмотрим 5 удобных сервисов проектирования чат-ботов.
5 лучших решений
Мультиплатформенное решение по созданию ботов. Поддерживаемые площадки:
Особенности сервиса:
- обширные библиотеки контента;
- речевые интерфейсы;
- крупное коммьюнити (более 225 тысяч участников);
- обучаемость созданных ботов;
- поддержка большинства языков.
И главное - сервис бесплатный! Кроме продвинутых услуг: обучение персонала, обзор кода, хостинг и лицензии, расширенная поддержка и прочее. Также платформа предлагает интересное решение: AIaaS (искусственный интеллект как услуга). Используя ресурсы Pandorabots (или свой любимый текстовый редактор), вы создаете бота, а затем активируете его за считанные минуты через встроенный RESTful API.
«Все, что вам нужно при создании ботов. Для мессенджеров, Slack и Telegram», - гласит первое окно сервиса. Заявленные преимущества:
- Настоящая кросс-платформенность. Бот, созданный единожды, работает на всех площадках;
- Удобный редактор бота, не требует знания кода;
- Более 90 встроенных интеграций;
- Хостинг.
Ценообразование включает два тарифа: бесплатный (5 ботов, 100 интеракций, email-поддержка) и стандартный ($19/месяц, 15 ботов, 1500 интеракций). Но не только. К стандартному плану за $10/месяц добавляется 5 ботов, а за $25 -25000 интеракций.
За интеракцию, или взаимодействие, система считает каждый случай запуска бота пользователем.
Платформа создания facebook-ботов с очаровательным логотипом-осьминогом 🙂 Сервис не требует знания кода, он бесплатный и простой. Но - забудьте о кросс-платформенности, ведь ManyChat поддерживает только Facebook Messenger.
Бот проектируется на площадке за несколько минут - интуитивно-понятный интерфейс способствует этому. Работа с мессенджером Facebook предполагает несколько преимуществ, на которых фокусируется ManyChat. Так, когда человек начинает переписываться с вашей корпоративной страницей (ботом), он автоматически становится подписчиком. Теперь ему можно рассылать обновления, уведомления, прочий контент.
Автоматизируйте взаимодействия бота с пользователями, создайте контент для рассылок, настройте дату/время отправки - и отдыхайте, остальное бот сделает сам;) К тому же, ManyChat применим как платформа автопостинга по RSS, Facebook, Twitter, YouTube.
Словом, ManyChat - удобное решение, которому недостает лишь кросс-платформенности.
Сервис работает со многими платформами: Facebook Messenger, Twitter, Slack, Smooch, Intercom, Telegram, KiK, Twilio, Webhooks, Luis.ai, Wit.ai, GitHub. Из особенностей:
У Meya подробнейший прайс-лист (на фоне остальных героев подборки) - целых 5 тарифов. Не факт, что это хорошо - глаза слегка разбегаются от обилия вариантов.
- Бесплатный (200 сообщений, 1 бот, 1 сотрудник, поддержка сообщества);
- Стартап ($49/месяц, 10 000 сообщений, 5 ботов, 2 сотрудника, «бронзовый» саппорт и аналитика);
- Бизнес ($99/месяц, 20000 сообщений, боты и сотрудники без ограничений, «серебряный» саппорт, аналитика, экспорт Github);
- Организация ($199/месяц, гибкое ценообразование - 50 000 сообщений или 10 000 пользователей, боты и сотрудники без ограничений, «золотой» саппорт, аналитика, экспорт Github);
- Предприятие (цена по договоренности, гибкое ценообразование - более 50 000 сообщений или 10 000 пользователей, боты и сотрудники без ограничений, «платиновый» саппорт, аналитика, экспорт Github).
Как резюме: интересная платформа с широким функционалом.
Гвоздь подборки. Платформа позволяет создавать ботов для Facebook и Telegram. На подходе Slack, KiK, WhatsApp и Viber. Сервис предлагает интуитивно-понятный функционал, не требующий знания кода. ИИ платформы распознает запросы пользователей в широком диапазоне, и отвечает на них, а само решение поддерживает интеграцию со многими сервисами (twitter, YouTube, Instagram и прочее).
ChatFuel уже используют National Geographic, TechCrunch, UBER. А главное - платформа бесплатная! Поправка - до 100 000 активаций бота в месяц. Но этот лимит - условный, ведь он в 2-5 раз шире, чем условия конкурентов. Кажется, создатели ChatFuel сделали самое привлекательное решение на рынке. Как минимум, по соотношению цены/качества.
Вместо заключения
Мы рассмотрели ТОП-5 решений по созданию ботов. Список доступных платформ, функционал, цена - все разнится от решения к решению, но вы наверняка найдете сервис по своим нуждам.
Но помните, если ваше время стоит дорого, и тратить его на проектирование бота вы не хотите, или если вам нужен нестандартный продукт с особенным функционалом - берите свои идеи и обращайтесь в РобоМаркетинг 🙂 Мы спроектируем для вас ботов любой сложности, без функциональных ограничений, лимитов и ежемесячных плат за подписку.
Продолжаем цикл статей посвященный написанию чат-ботов для социальных сетей на php. Прошлый раз мы создавали бота для Телеграм, а в этот раз я расскажу как сделать аналогичного бота для ВКонтакте. Забегая вперед скажу, что сегодня мы не будем использовать ВКшный PHP SDK и наш бот будет состоять лишь из одного файла (про SDK поговорим в другой раз).
Также, как и в случае с Телеграмм ботом нам потребуются минимальные навыки программирования на php, хостинг и ssl сертификат. Готовы? Приступим!
Что будет уметь наш бот?
Возможности бота ограничены лишь фантазией программиста (благо api вк многое позволяет), поэтому для примера наш бот будет уметь лишь самое простое, а именно:
- Отправлять уведомления при вступлении в сообщество;
- Отвечать в случае если пользователь отправил ЛС в чат группы;
- Отправлять уведомление в момент когда пользователь покидает группу.
Начинаем создавать бота
Прежде чем начнем писать код, создадим ключи доступа для нашего бота. Для этого перейдем в Управление сообществом, выберем справа «Работа с API» и нажмем на «Создать ключ».
Во всплывающем окне отметим галочками права доступа. В нашем случае достаточно лишь поставить галочку напротив пункта «Разрешить приложению доступ к сообщениям сообщества «, но имейте ввиду, что для более крутых ботов стоит ставить галки напротив всех пунктов сразу. Подтвердим действие нажатием по кнопке «Создать».
Теперь перейдем во вкладку Callback API->Настройки сервера. Здесь нас интересуют сразу 3 вещи: Адрес, Строка, которую должен вернуть сервер и Секретный ключ. Адрес пока пропустим (в целом вы можете сразу его заполнить если определились с тем, где будет лежать основной файл нашего php-бота, но поскольку сам файл еще не создан, то ВК будет ругаться, ибо сразу после ввода url соцсеть отправляет POST-запрос на проверку доступности бота по указанному адресу). Скопируем значение напротив «Строка, которую должен вернуть сервер» (confirmationToken). (в нашем случае это tt32e1 . Придумает Секретный ключ (secretKey). Не забываем нажать «Сохранить».
Итак, на выходе у нас должны быть где-то записаны 3 вещи:
- confirmationToken
- token
- secretKey
Теперь можно приступить к написанию php кода.
Как создать бота в ВК (кодинг на php)
Начинаем писать файл нашего бота ВКонтакте. Назовем его vk_bot.php. Напомню, что код необходимо писать в кодировке UTF-8 (без BOOM).
Определимся с константами:
if (!isset($_REQUEST)) {return;}
// Строка, которую должен вернуть сервер (См. Callback API->Настройки сервера)
$confirmationToken = "tt32e1";
// Ключ доступа сообщества (длинная строчка которую получили нажав "создать ключ")
$token = "тутбудетмногобуквицифр";
// Секретный ключ. (Задаем в Callback API->Настройки сервера)
$secretKey = "testKeyMyBot";
Теперь проверим поступившие данные:
// Получаем и декодируем уведомление
$data = json_decode(file_get_contents("php://input"));
// проверяем secretKey
if (strcmp($data->secret, $secretKey) !== 0 && strcmp($data->type, "confirmation") !== 0) {return;}
Используя switch проверим, что находится в поле «type» (какое событие сработало и в зависимости от этого сформируем ответ).
// Проверяем, что находится в поле "type"
switch ($data->type) {
// Запрос для подтверждения адреса сервера (посылает ВК)
case "confirmation":
echo $confirmationToken; // отправляем строку для подтверждения адреса
break;
// Если это уведомление о новом сообщении...
case "message_new":
$userId = $data->object->user_id;
$user_name = $userInfo->response->first_name;
$request_params = array(
"message" => "{$user_name}, Ваше сообщение получено!
В ближайшее время админ группы на него ответит.",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
break;
}
Небольшое пояснение:
Когда юзер отправляет сообщение в чат с группой срабатывает событие. Событие представляет собой JSON, имеющий следующую структуру:
{«type»: <тип события>, «object»: <объект, инициировавший событие>, «group_id»:
}
В зависимости от того, что нам пришло в type, мы можем понять, какая структура будет у объекта object. Полный список возможных событий см. в официальной справке ВКонтакте .
Итак, на данный момент мы научили нашего бота 2-м вещам: корректно отвечать роботу ВК на проверочный запрос, а также автоматически отправлять пользователю уведомление в случае, если он отправит любой текст.
Теперь можно закачать наш с вами файл на сервер и заполнить в настройках адрес (если не сделали этого ранее).
Кроме этого необходимо перейти во вкладку «Типы событий» и поставить галочку напротив «Входящие сообщения».
Теперь можем проверить работу:
Как видим - все пашет. По сути у нас уже получилось сделать бота в вк. Давайте его немного прокачаем.
Добавим в конструкцию case еще 2 условия. Первое - отправит уведомлений в случае если человек вступил в нашу группу:
// Сработало событие - человек вступил в группу
case "group_join":
// получаем id автора сообщения
$userId = $data->object->user_id;
// через users.get получаем данные об авторе
$userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
// Вытаскиваем имя отправителя
$user_name = $userInfo->response->first_name;
// Через messages.send используя токен сообщества отправляем ответ
$request_params = array(
"message" => "Добро пожаловать в группу, {$user_name}!",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?". $get_params);
echo("ok"); // Возвращаем "ok" серверу Callback API
break;
Второе - аналогичное уведомление, но только в момент, когда человек покинет сообщество:
// Сработало событие - человек покинул группу
case "group_leave":
// получаем id автора сообщения
$userId = $data->object->user_id;
// через users.get получаем данные об авторе
$userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$userId}&v=5.0"));
// Вытаскиваем имя отправителя
$user_name = $userInfo->response->first_name;
// Через messages.send используя токен сообщества отправляем ответ
$request_params = array(
"message" => "{$user_name}, нам очень жаль, что вы покинули нашу группу!",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?". $get_params);
echo("ok"); // Возвращаем "ok" серверу Callback API
break;
Не забудем добавить соответсвтующие галочки напротив нужных нам событий в настройках группы:
Чего нельзя делать ботам
Не лишним будет процитировать один из разделов справки ВК:
Теперь вы знаете как создавать своего бота в ВК. Исходники урока можно . В следующий раз поговорим о работе с PHP SDK для вк-ботов. Если у вас остались вопросы - задавайте в комментах. И не забываем репостить и лайкать эту статью)
Контент-маркетинг
Как создать бота в Телеграмм без навыков программирования?
Нужен собственный чат-бот? Чтобы спроектировать его, необязательно владеть кодом: современные технологии и бесплатные сервисы позволяют создать бота telegram без программирования, быстро и легко.
Если необходим простой продукт без искусственного интеллекта, то вы вполне справитесь своими силами. Сегодня разберем процесс создания и настройки элементарного чат-бота: на примере сервиса Manybot.
Но сперва - теория:)
Мы уже писали, зачем нужны боты в Telegram, Facebook, WhatsApp и прочих мессенджерах - но повторимся. Если верить цифрам, чат-боты станут «следующей большой вещью» - так, аудитория мессенджеров уже превысила аудиторию социальных сетей, и отрыв продолжает расти. Польза ботов для аудитории очевидна. Это удобно: они бронируют билеты, заказывают еду, такси, ищут информацию и подходят для множества других функций. Бизнесу тоже открываются интересные возможности:
- новый маркетинговый канал;
- низкая (пока еще) конкуренция;
- высокая интерактивность (боты хорошо вовлекают во взаимодействие);
- реальная польза инструмента (если обеспечите ее, то создадите ценность и укрепите имидж бренда).
Примерно так работают боты телеграм на формирование «лица» бизнеса. Кстати, собственный чат-собеседник придаст вашей компании флера «прогрессивной» - ведь это громкий, но все еще редкий в России тренд.
Как функционируют чат-боты?
Разберем принципы работы таких программ. Существует два типа ботов. Первые «прямолинейны», основаны на командах, а вторые наделены искусственным интеллектом. С первыми более понятно - их «нервная система» подчинена строгим алгоритмам и правилам. «Если пользователь отправляет запрос А, я выполняю В». Железно и без интерпретаций.
Но как работают боты telegram, «обремененные» сознанием? Они опираются на машинное обучение и интеллектуальный анализ данных. Чтобы полностью раскрыть эти термины, нужно писать диссертацию. Но суть - в создании алгоритмов, способных к обучению. Есть два пути: индуктивный (обучение через поиск общих закономерностей), и дедуктивный - обучение через выгрузку всего массива данных. Имеет ли второй путь отношение к самообучающимся системам - спорно до сих пор. И скорее, не имеет. Поэтому в современной науке принято алгоритмами машинного обучения считать работающие индуктивным способом - ищущие закономерности в данных и интерпретирующие их.
Но оставим математику. Специальные платформы с «человеческим» интерфейсом знают, как работает бот в телеграмм - и этого хватит, чтобы создать его, не владея кодом.
Запускаем бота без знания кода
Вернемся к теме статьи - поговорим про создание чат бота telegram с помощью сервиса Manybot. Мы выбрали его по нескольким причинам. Основная - сегодня это наиболее адекватное решение на русском языке с простым интерфейсом. Система действительно помогает в создании бота на всех этапах, и не требует знания кода или API. Существуют альтернативы на английском, но они либо более сложные, либо не «дружат» с Telegram-мессенджером. Поэтому пока - Manybot 🙂
Эту платформу создал Микаэл Ян, сын основателя Abbyy и талантливый предприниматель сам по себе. Но речь не о нем, а об его детище. Manybot - это чат-бот, помогающий настраивать своего бота. Разберем процесс поэтапно.
1. На сайте перейдите по СТА «Открыть Manybot в Telegram» - действие предполагает, что у вас уже есть аккаунт в мессенджере 🙂
2. Так вы перейдете к боту-помощнику. После приветствия он, как в сказках или компьютерных играх, сразу выдаст следующий квест 🙂 Все боты в Telegram регистрируются и настраиваются через «главного бота», имя которому @BotFather.
Поэтому, чтобы добавить бота, вы должны сначала зарегистрировать его у «Крестного отца» мессенджера. На скриншоте ниже это нам объясняет сам Manybot.
3. Ok, идем к @BotFather
- кстати, он англоязычный. Сперва задаете ему команду /newbot, после чего он справится об имени и «username» бота. Первое будет отображаться как название чата, а второе - «адрес» бота в системе.
Выбрав название (или найдя свободное из подходящих), задайте команду /token. Она нужна для возвращения в Manybot. Кстати, вот как создать чат бота в телеграмме - ведь формально, он готов. Осталось самое интересное - настроить его и «выучить» командам.
4. Скопируйте токен и возвращайтесь к Manybot.
Осталось только отправить скопированный код системе и настроить описание бота. Это своего рода СТА - маленький текст, встречающий новых пользователей. Объясните, для чего нужен бот в telegram потенциальным клиентам, и зачем на него подписываться.
5. Manybot выдал ссылку на вашего бота.
Кое-что он уже умеет - например, по команде /start выдает вписанный ранее текст и меню разработчика. Примечание: функции после текста «Используйте /off чтобы приостановить подписку» не видны и не доступны рядовым пользователям.
Взаимодействия с ботами строятся на командах - поэтому создадим несколько и для нашего. Выбираем /commands.
6. Создаем команду.
Кстати, если сбивает с толку, откуда у едва зарегистрированного бота интерфейс и команды - повторим, это интерфейс сервиса Manybot. Ваши клиенты не увидят функционала. Итак, бот-платформа предлагает выбрать название команды.
7. Теперь сделаем кнопку главного меню
, привязанную к команде. Выбираем пункты: «Настроить гл.меню»/«Добавить пункт меню», выбираем команду («/read_news» в нашем случае) и задаем название пункту (у нас это - «Новые статьи»).
8. На скриншоте ниже - «тестовый запуск» нашей команды.
Работает как часы:)
9. Добавим рандомизированную рассылку.
Выберите пункт меню «Включить режим случайного сообщения» и прикрепите к команде посты - от двух до нескольких сотен, лимит не указан. Так, по запросу пользователя система выдаст один из этих постов, случайным порядком.
Мы решили добавить команду /random_article, привязанную к пункту «Получить случайную статью». К команде прикреплено три сообщения со ссылками на блог-посты РобоМаркетинг.
На скриншотах ниже видно, как мы это сделали:
И очередной «тестовый запуск». Прекрасно работает 🙂
Вместо заключения
Конечно, это самые азы - всего два элементарных пункта. Но теперь вы получили представление, как создать бота в телеграмм для «чайников». У вас есть база, которая расширяется чтением статей, изучением языков программирования и самообразованием в целом.
Manybot - далеко не единственный сервис. Существует англоязычная Мeyа для более продвинутых ботостроителей, СhatFuel для Facebook Messenger, и россыпь прочих вариантов… о которых мы расскажем в следующих материалах 😉
В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных "фишек" Telegram является его якобы защищённость - по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.
В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы "запилим" полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории .
Документация, описывающая процесс взаимодействия с ботами Telegram находится . Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов - telepot . Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.
Как создать Telegram бота?
Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:
- Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно
- Добавляем к себе в контакт-лист бота с именем BotFather
- Запускаем процедуру "общения" с ботом нажатием кнопки Start . Далее перед нами предстанет список команд точно как на скриншоте.
- Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot . Например, DjangoBot или Django_bot.
- Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю:)
После создания бота, обратите внимание на строку с текстом:
Use this token to access the HTTP API:
За которой следует т.н. token по которому мы будем манипулировать нашим ботом. Помимо функции создания telegram бота, BotFather также имеет ряд других возможностей:
- Присвоить боту описание
- Установить аватар
- Поменять token
Приступаем к кодированию
Как я ранее уже упоминал, мы будем писать веб-приложение на Django . Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates ) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.
- Использование вызова API метода getUpdates
- Установка Webhook
Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook . Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить от Let"s Encrypt.
Подробнее о getUpdates и setWebhook можно почитать соответственно и .
Итак, вернёмся к python библиотеке для работы с Telegram - telepot . На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:
Pip install telepot
Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:
Import telepot token = "123456" TelegramBot = telepot.Bot(token) print TelegramBot.getMe()
Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:
{u"username": u"PythonPlanetBot", u"first_name": u"Python Planet Bot", u"id": 199266571}
Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.
Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start
Выполняем код:
TelegramBot.getUpdates() [{u"message": {u"date": 1459927254, u"text": u"/start", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 1, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, u"update_id": 649179764}]
Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update . Внутри Update находится объект Message . Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.
TelegramBot.getUpdates(649179764+1) [{u"message": {u"date": 1459928527, u"text": u"hello bro", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 13, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, u"update_id": 649179765}]
На этапе написания простейшего Telegram бота нам этих вызовов достаточно. Приступим к написанию Django приложения для обслуживания наших пользователей.
Простая функция парсинга RSS фида Planet Python выглядит вот так:
# -*- coding: utf8 -*- from xml.etree import cElementTree import requests def parse_planetpy_rss(): """Parses first 10 items from http://planetpython.org/rss20.xml """ response = requests.get("http://planetpython.org/rss20.xml") parsed_xml = cElementTree.fromstring(response.content) items = for node in parsed_xml.iter(): if node.tag == "item": item = {} for item_node in list(node): if item_node.tag == "title": item["title"] = item_node.text if item_node.tag == "link": item["link"] = item_node.text items.append(item) return items[:10]