Сайт о телевидении

Сайт о телевидении

» » Создать бота на страницу вк. Как создать страницу "бота" в "ВК" самостоятельно? Как сделать бота в ВК для группы

Создать бота на страницу вк. Как создать страницу "бота" в "ВК" самостоятельно? Как сделать бота в ВК для группы

Все знают Павла Дурова - создателя социальной сети "ВКонтакте". В 2013 году, после продажи предыдущего проекта, он со своей командой основал мессенджер Telegram. С помощью этого портала можно читать книги, качать музыку, смотреть погоду, шифровать данные и так далее. В "Телеграмме" много и других полезных функций.

Преимущества Telegram перед другими мессенджерами

Чем же хорош проект и как сделать бота в "Телеграмме"? В первую очередь социальная сеть мультиплатформенная. Вряд ли вы найдете другой бесплатный, качественный мессенджер да еще и без рекламы на абсолютно все платформы. Это намного удобней и практичней браузерных порталов.

С недавних пор одной из особенностей этого мессенджера является создание личных ботов. Что это такое? Как сделать бота в "Телеграмме" без навыков программирования? Зачем они вообще нужны? Об этом и многом другом пойдет речь в этой статье.

Боты Telegram

Боты в "Телеграмме" - это некоторая разновидность чат-ботов, но в виде зарегистрированного пользователя. У таких юзеров имена оканчиваются словом bot. Они способны выполнять различные действия. Широкая многофункциональность в грамотных руках значительно упростит жизнь других пользователей.

Как начать общаться с ботами?

Начать работу очень легко. После нахождения нужного бота запустите его. Номер бота в "Телеграмме" отличается в зависимости от функций. Это вам поможет сделать виртуальная клавиатура внизу. После этого бот оправляет список информации, команд, доступных для него.

Создание бота без навыков программирования

Как сделать бота в "Телеграмме"? Всего через пять минут после ознакомления с инструкцией по созданию вы сможете повторить процесс и создать собственного даже без навыков программирования:

  1. В браузере вы должны найти сайт manybot, который позволяет бесплатно создать собственного бота.
  2. На сайте вы увидите большую кнопку: «Создать бота».
  3. После нужно нажать «Открыть Telegram» немного ниже.
  4. Далее необходимо зарегистрироваться в мессенджере.
  5. Когда вы зайдете в Telegram, то увидите два окна: Chats и New message. Под названием второго окна в поисковой строке наберите Botfather.
  6. Нажмите на найденного бота. Вы перешли в чат, под которым находится кнопка Start, ее нужно нажать.
  7. Для создания нового бота напишете в чат /newbot, после чего собеседник ответит просьбой придумать имя новому помощнику. Например, назовем бота Nonprog.
  8. После этого вас просят придумать ник вашему боту, окончание которого должно обязательно заканчиваться на bot. Он будет выглядеть так: Nonprogbot.
  9. После проделанных выше операций собеседник пришлет токен. Он будет выглядеть приблизительно так: 493493:AAEOrog63 (это номер бота в "Телеграмме", но найти его потом можно будет уже по другому номеру). Вот эту строчку нужно скопировать в буфер обмена мышкой или горячими клавишами Ctrl+C.
  10. В поисковой строке введите фразу manybot, после чего напишите /Addbot, а затем /start.
  11. С вами начинает диалог новый бот. Прочитав его сообщение, нажимаем кнопку внизу «Добавить нового бота». Он пришлет инструкцию, ответом на которую будет кнопка «Я скопировал токен».
  12. Вставьте токен.
  13. Далее можете придумать описание вашему боту, а можете сделать это позже, нажав кнопку «Пропустить».
  14. Вернувшись в окно с поисковой строкой, пропишите в ней имя своего помощника. Если все правильно, то создание бота в "Телеграмме" окончено. Перейдите в диалог с ним и активируйте его кнопкой Start.

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

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

Можно ли заработать на ботах?

На сегодняшний день Telegram очень быстро прогрессирует, обогнав своих конкурентов. Значит, логично предположить, что ценность ботов тоже возрастает. К сожалению, вряд ли вы найдете легкий способ заработать на создании ботов. Для этого необходимы познания в сфере программирования. В чем же заключается заработок?

Создание и продажа ботов для компаний

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

Как сделать бота в "Телеграмме"? Если вы новичок, то попробуйте походить на курсы программирования, потому что без этого вам будет очень сложно.

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

  1. Weathermen - этот отличный бот заменит вам все погодные виджеты и приложения. Несмотря на актуальные сводки информации на пять дней вперед, этот бот автоматически уведомляет вас о погодных условиях, стоит только написать, какой именно день вас интересует.
  2. Mycoocbot заменит сборник рецептов блюд. Просто напишите ингредиенты, которые есть у вас в холодильнике, и получите несколько вариантов ужина.
  3. To PDF - бот с узкой специализацией. Он конвертирует документы в PDF-файлы. Мелочь, но приятно, не нужно искать специальные сервисы в интернете, которые к тому же в большинстве своем платные.
  4. Pronunciationbot - незаменимый друг при изучении иностранных языков. Не знаете, как правильно звучит слово английское слово? Просто впишите его, и бот вам пришлет озвучку. Поддерживает много языков.
  5. YouTube Downloader - чат-бот, с помощью которого вы скачаете любое видео с YouTube. В интернете и так уже существует много способов, чтобы это сделать, но зачем напрягаться, если есть такой бот. Просто вводите ссылку на видео, и он присылает ссылки на скачивание в разных форматах.

Полезные боты для бизнеса и работы

Боты в "Телеграмме" предназначены не только для развлечений. Многие из них помогут в бизнесе, учебе и работе:

  1. RussionPost - пожалуй, один из самых нестандартных ботов, так как через него можно пообщаться с сотрудниками Почты России. Забудьте про разные почтовые приложения, клиенты. Этот бот заменит их все.
  2. Exchange Rates bot - очень полезный бот в бухгалтерской сфере. Он позволяет следить за курсами валют, переводить разные суммы из одной валюты в другую. Даёт обширную информацию вплоть до графиков.
  3. Taxigram - чат-бот, который поможет вам заказать такси или узнать, где это можно сделать. В данном сервисе пока работают несколько компаний, но в скором времени и ваше такси обязательно туда попадет. Просто вводите пункт А и пункт Б, после чего бот вышлет вам фотографию карты с вашим маршрутом.
  4. Yandeks - один из мощнейших ботов. Имеет очень широкий функционал, начиная с чтения книг, заканчивая поиском конкретной информации. Кроме того, этот бот отображает новости во многих сферах жизни.
  5. SberBank - про этого помощника говорить много не нужно. Официальный бот Сбербанка, с помощью которого можно проводить все операции, отправляя сообщения в чат. Безусловно, будет полезен многим предпринимателям.

Продолжаем цикл статей посвященный написанию чат-ботов для социальных сетей на php. Прошлый раз мы создавали бота для Телеграм, а в этот раз я расскажу как сделать аналогичного бота для ВКонтакте. Забегая вперед скажу, что сегодня мы не будем использовать ВКшный PHP SDK и наш бот будет состоять лишь из одного файла (про SDK поговорим в другой раз).

Также, как и в случае с Телеграмм ботом нам потребуются минимальные навыки программирования на php, хостинг и ssl сертификат. Готовы? Приступим!

Что будет уметь наш бот?

Возможности бота ограничены лишь фантазией программиста (благо api вк многое позволяет), поэтому для примера наш бот будет уметь лишь самое простое, а именно:

  1. Отправлять уведомления при вступлении в сообщество;
  2. Отвечать в случае если пользователь отправил ЛС в чат группы;
  3. Отправлять уведомление в момент когда пользователь покидает группу.

Начинаем создавать бота

Прежде чем начнем писать код, создадим ключи доступа для нашего бота. Для этого перейдем в Управление сообществом, выберем справа «Работа с API» и нажмем на «Создать ключ».

Во всплывающем окне отметим галочками права доступа. В нашем случае достаточно лишь поставить галочку напротив пункта «Разрешить приложению доступ к сообщениям сообщества «, но имейте ввиду, что для более крутых ботов стоит ставить галки напротив всех пунктов сразу. Подтвердим действие нажатием по кнопке «Создать».

Теперь перейдем во вкладку Callback API->Настройки сервера. Здесь нас интересуют сразу 3 вещи: Адрес, Строка, которую должен вернуть сервер и Секретный ключ. Адрес пока пропустим (в целом вы можете сразу его заполнить если определились с тем, где будет лежать основной файл нашего php-бота, но поскольку сам файл еще не создан, то ВК будет ругаться, ибо сразу после ввода url соцсеть отправляет POST-запрос на проверку доступности бота по указанному адресу). Скопируем значение напротив «Строка, которую должен вернуть сервер» (confirmationToken). (в нашем случае это tt32e1 . Придумает Секретный ключ (secretKey). Не забываем нажать «Сохранить».


Итак, на выходе у нас должны быть где-то записаны 3 вещи:

  1. confirmationToken
  2. token
  3. 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 есть специальный бот для создания ботов и управления уже созданными – @BotFather . Просто начните разговаривать с ним и, следуя подсказкам, сделайте несколько простых шагов.

Напишите в окне диалога /newbot для создания нового бота. @BotFather спросит, как новый бот будет называться и какой юзернейм использовать (имя у всех ботов в Telegram должно заканчиваться на «bot»). Дальше предложит добавить описание возможностей бота и юзерпик, а также выдаст уникальный токен, который пригодится в дальнейшей настройке и работе бота.

Все, бот готов.

  • Chatfuel – именно этот сервис помог сделать свои боты изданиям Forbes и TechCrunch и привлек инвестиции Яндекса . С его помощью можно сделать бот для Telegram и Facebook Messenger, а в будущем – и для Slack, Kik, WhatsApp и Viber. Работа сервиса по настройке вашего бота также происходит в режиме общения с ботом @Chatfuelbot . Пока что все это бесплатно;
  • Api.ai – сервис для создания чат-ботов для Facebook Messenger и Slack . Подключаете бот и через веб-интерфейс задаете команды и реакции на сообщения пользователей, заполняя и редактируя пошаговую форму. Инструмент бесплатный, пока к вашему боту поступает меньше 6000 обращений в месяц. Дальше придется покупать подписку – от 89$ в месяц.
  • Meya – еще один сервис для создания ботов, работает с Telegram, Slack, Kik, Facebook Messenger, Twitter и др. Предоставляет хостинг для ботов, базы данных, фреймворк для понимания естественной речи пользователя, средства для интеграции и т.п.

Контент-маркетинг

Как создать бота в Телеграмм без навыков программирования?

Нужен собственный чат-бот? Чтобы спроектировать его, необязательно владеть кодом: современные технологии и бесплатные сервисы позволяют создать бота 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]