Сервисами мгновенных сообщений пользуются не только люди, но и боты. Создатели IM-клиента Telegram учли этот факт и первыми среди конкурентов открыли API для ботов. Теперь сторонние разработчики могут спокойно создавать своих ботов и подключать их к Telegram.

Для ботоводов открыт специальный раздел со справочной информацией по созданию ботов.

Боты — обычные аккаунты Telegram, которыми управляют не люди, а программы, и у них часто есть элементы ИИ. Они могут делать что угодно — преподавать, играть, искать информацию, транслировать сообщения на широкую аудиторию, напоминать о событиях, подключаться к другим сервисам, даже передавать команды в Интернет вещей, рассказывают разработчики Telegram.



В последней версии Telegram работа с ботами стала особенно простой. В некоторых случаях даже не придётся ничего набирать: боты поддерживают работу с кнопками, для каждого можно делать свои особенные кнопки.





Вот примеры некоторых ботов, сделанных бета-тестерами за пару часов.

@ImageBot – отправляете боту ключевое слово, а он возвращает релевантную картинку.
@TriviaBot – викторина, можно играть одному или присоединиться к группе и соревноваться с друзьями.
@PollBot – создаём опросы для групповых частов.
@RateStickerBot – ищем и оцениваем новые стикеры.
@AlertBot – если установить время, то этот бот пришлёт напоминание.
@HotOrBot – бот типа Tinder для поиска друзей/подружек и назначения свиданий.
@GithubBot – отслеживание обновлений Github.
@StoreBot – поиск новых ботов и их оценка.

Сделать своего бота не представляет никакого труда, уверяют разработчики. Просто генерируете ключ с помощью бота @BotFather и используете простые http API для управления ботом.

В интерфейсе Telegram боты будут отличаться от обычных людей: экран профиля и окно с чатом у них слегка другого вида. У них нет доступа по умолчанию ко всем сообщениям при присоединении к новой группе. К тому же, у всех ботов имена пользователя заканчиваются буквами bot.

У каждого бота имеется URL вида https://telegram.me/your_bot. Открытие такой ссылки инициирует чат-сессию с ботом, если у вас установлен Telegram.

Хозяин бота может передать ему какие-то параметры типа ключей аутентификации ссылкой вида https://telegram.me/your_bot?start=value (см. deep linking).

«С сегодняшнего дня вы будете встречать ссылки вроде этой в Telegram и повсюду. Встречайте их с нежностью, это боты!, — пишут разработчики Telegram. — Они предоставят вам все необходимые услуги: новости, игры, опросы, интеграция, фотографии котов. С ботами все мечты сбываются».

См. также
Введение в ботов
Bot API Manual

Комментарии (45)


  1. a553
    25.06.2015 03:09
    +24

    О, теперь в телеграме хоть с кем-то пообщаться можно! А так, самый удобный мессенджер, я считаю.


    1. skobkin
      25.06.2015 10:54
      -10

      Не холивара ради, но мне больше по вкусу (и субъективно — по удобству) 4talk, который от бывших разработчиков QIP. Но там платформа на данный момент закрыта и клиенты только те, что выпустили разработчики. Клиента под Linux нет, например (хотя под Wine работает хорошо).
      Мне лично тоже бы хотелось там подобного API.


      1. berezuev
        25.06.2015 12:17
        +15

        Собственно, вы сами же и перечислили причины не пользоваться 4talk'ом


        1. skobkin
          25.06.2015 12:21
          +1

          Ну правильно, нужно же быть объективным, а не слепо хвалить.
          Но лично для меня эти причины не играют главной роли, поэтому и пользуюсь им. У меня Android, Linux и Windows на различных устройствах. Хотя вот под Windows Phone они ещё не выпустили версию, так что это тоже минус.
          Я говорю только за себя и за удобство использования в своих кейсах.


          1. VLT
            25.06.2015 14:16

            WP версия есть!


            1. skobkin
              25.06.2015 14:18

              Публичного не видел. Можно ссылку?


      1. LbICbIY
        25.06.2015 13:40

        За всё время видел там только одного друга из более чем 1000 контактов в записной книжке.


        1. skobkin
          25.06.2015 13:44

          Да, он менее популярен и, насколько я понимаю, не очень мощно пиарился для российской аудитории. У меня несколько другая картина (но это моя заслуга).


          1. LbICbIY
            25.06.2015 14:09

            Согласен, пиаром не занимался. Как мессенджер он понравился, но за счёт новизны уже не поднимется, нужен маркетинг. Вайбер-то чудом взлетел и скорее всего из-за возможности совершать звонки.


  1. milar
    25.06.2015 10:22

    Интересно, многим по прочтении первая мысль, приходящая на ум — попробовать использовать его как алертер статусных сообщений сервера? И далее дополнить возможностью управлять им простенькими командами?) Несколько раз устанавливал Телеграм, активно знакомился, щупал, изучал и постепенно он умирал из-за малой активности внутри. Теперь снова есть мотивация сделать это уже в n-ый раз -)


    1. norlin
      25.06.2015 11:12
      +3

      Давно уже подобные боты для мониторинга/управления сервером делались под ирку, аську, джаббер и т.д.


      1. ftdgoodluck
        25.06.2015 11:30
        +3

        Можно считать, что телеграм это логическое развитие идеи icq, только на современный лад — с чатами, мобильными приложениями и api.


        1. WST
          25.06.2015 12:56

          Всё новое — хорошо забытое старое. И под тот же Jabber были и групчаты, и мобильные приложения. По поводу поста — любопытно, но печально, что при вопросе «у тебя есть телеграм?» большинство людей, не связанных с IT, спрашивают «а что это такое?». Кажется, есть риск, что этот самый Телеграм выльется в такую же сеть главным образом для IT-шников, как и старый добрый джаббер.


          1. ftdgoodluck
            25.06.2015 13:01

            Да, так может произойти.
            Но по сути, выбор мессенджера — это выбор не личности, а ее окружения. Когда-то давно, практически весь мой контакт-лист перебрался из аськи в скайп. Но теперь, даже если я сам захочу перейти на телеграм, то буду сидеть там один(


            1. utkorose
              25.06.2015 22:39

              Так что всё зависит от политики телеграма. Скажем, Бизнес-молодость телеграм для всяких групповых чатов, похоже, довольно активно использует. Ибо реально удобно и количество участников до 200. Автоматически туда это втягивает некоторых людей. Мы можем что сделать — рекомендовать для всяких коллективных чатов, рабочих и т.д.


              1. ftdgoodluck
                25.06.2015 23:30

                Да я вот, собственно, сам собираюсь перевести рабочий чат из скайпа в телеграм… только как-то не до этого)


            1. Acuna
              26.06.2015 02:05
              +2

              Как жаль, что джаббер был таким перспективным, но он не смог. Особенно мне нравился QIP, когда он вобрал в себя все соц. сети. Он был бы при этом самым мощным и удобным мессенджером лично для меня. И по забавной иронии судьбы его заменяют мессенджеры с совершенно таким же функционалом, который постепенно дорабатывается, чтобы в конце и стать… Этим же джаббером)


          1. ErhoSen
            25.06.2015 17:00

            Забавно! Только сейчас понял, что все мои контакты в телеграм — it-шники разного калибра!


    1. BuCeFaL
      25.06.2015 12:01

      Hubot же. Тикет на реализацию адаптера уже есть.


    1. skobkin
      25.06.2015 14:56

      Да, поменять отправку из того же Munin SMS на отправку сообщений в мессенджер — удобно.


  1. Ryav
    25.06.2015 12:34

    Блин, с удовольствием перешёл бы на Telegram, но все висят на viber или whatsapp. Откуда у людей такая тяга к безвкусице?


    1. ftdgoodluck
      25.06.2015 13:02
      +1

      Маркетологи отрабатывают свой хлеб)


    1. artishok
      25.06.2015 14:03

      Переходите, люди вскоре подтянуться…


      1. ozonar
        25.06.2015 23:54

        Год уже жду, но всё так никого и нет…

        Вообще, чат необходим в том случае, если в нём есть с кем общаться. Если же есть куча альтернатив, через которые можно найти любые контакты — зачем он нужен?


  1. LbICbIY
    25.06.2015 14:10
    +4

    Интересно, будет возвращение реинкарнации irc и ботов для каналов?


  1. Magir
    25.06.2015 16:12

    Набросал за пару часов бота — викторина из IRC — @BukToPuHaBoT
    Список команд по /help, фидбек можно оставить командой /feedback текст или писать тут в личных сообщениях. В свободное время буду дорабатывать :)


    1. camelos
      25.06.2015 16:40

      На чём делали? Чем обновления забираете?
      Что-то телеграм не отправляет мне webhook-и. Хотя если постучаться по указанному адресу — всё ок (адрес, конечно же, установлен setWebhook)


      1. Magir
        25.06.2015 16:58

        PHP, обновления забираю синхронно, через getUpdates. WebHook, судя по описанию, работает только по HTTPS, может в этом дело?


        1. camelos
          26.06.2015 09:00

          только по HTTPS

          Ага, setWebhook отказывается работать с адресом http.
          Я уж грешу на то, что у меня сертификат самоподписанный.


          1. Vanger
            26.06.2015 10:25

            Именно, мы сделали у китайцев, с ним работает


            1. camelos
              26.06.2015 10:49

              Спасибо! Попробую подсунуть не самоподписанный


    1. grozaman
      26.06.2015 20:09

      А базу данных пользователей на чем базировали?
      Простой txt/json или что-то поинтересней?


      1. Magir
        26.06.2015 20:22

        Простой serialize в текстовой файл. Учитывая постоянную работу — база в памяти, в файл скидывается периодически на случай перезапуска, при запуске, соответственно, читается. Пока этого хватает и, мне кажется, работает быстрее, чем подключать базу данных.


    1. Ogoun
      28.06.2015 02:22

      А не решали такой вопрос, getUpdates возвращает список всех сообщений, за последние 24 часа. Но для бота нет смысла забирать повторно уже принятые. Хотелось бы удалять прочитанные, чтобы не рос трафик. Но в документации нет команды для удаления сообщения (через HTTP). Вы не находили возможность сделать это? Или забираете весь список каждый раз?


      1. Ogoun
        28.06.2015 02:33

        Разобрался… Невнимательно изучал, достаточно в запросе отправлять идентификатор Update'а, с которого хочется получать список сообщений.


        1. grozaman
          28.06.2015 14:17

          Там есть параметр оффсет. Он и убирает, точнее сдвигает, прочитанные.
          А вообще на Гите уже на всех языках почти сделали свои библиотеки для работы. Гляньте. Я вот для C# уже нашел отличный. Уже пилю своего бота :)


  1. Kolonist
    25.06.2015 18:24

    Странно, но не могу зарегистрировать ни одного бота. Какой бы логин я не пробовал выбрать, BotFather постоянно пишет: «Sorry, this username is already taken. Think of something different». Если я пытаюсь выбрать логин, заведомо никем не занятый (случайный набор символов, например: adfhdshdshadfhadhad_bot), то сначала он пишет: «Sorry, an error has occurred during your request. Please try again later», а при повторной отправке, что логин занят.


    1. norlin
      25.06.2015 18:39
      +4

      Возможно, кто-то просто написал бота по регистрированию ботов.


      1. Kolonist
        25.06.2015 18:51

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


        1. varyen
          25.06.2015 19:48

          На реддите пишут, что такая проблема у многих. Вебхук тоже не получается поставить.

          Я сразу после обновления зарегистрировал бота, настроил и поигрался с ним, мне повезло. :)
          Я помню, когда никнеймы ввели, тоже не сразу получилось поставить тот ник, который у меня сейчас установлен. Так что, видимо остается только ждать. Возможно, они не были готовы к такому наплыву желающих.


        1. Error_403_Forbidden
          25.06.2015 19:55

          открой список команд в @BotFather и выбери команду /token
          Скорее всего тебе покажет полный список всех твоих ботов, которых «заняли киберсквоттеры» (в лице тебя самого :))


          1. Kolonist
            25.06.2015 19:57

            А то я не пробовал! В ответ получаю только: «You don't have any bots yet. Use the /newbot command to create a new bot first».


    1. Kolonist
      26.06.2015 00:04

      Похоже, что проблемы кончились. Сейчас боты нормально регистрируются.


  1. teifo
    26.06.2015 13:25

    А на бота напоминалку нельзя напоминание настраивать не часами и минутами по количеству, а по календарю + текст напоминания? Мол 22 июля 2015 года + позвонить Ване? Или это фича такая?


  1. Error_403_Forbidden
    27.06.2015 22:26

    502-я ошибка