Как написать telegram бота

от admin

Как создать бота в Телеграм самому: инструкции и сервисы

Читайте в статье, как создать бот в Телеграмм самостоятельно и настроить его. Мы подготовили пошаговые инструкции и подборку сайтов для создания ботов.

Недорогое продвижение Телеграм:

Подписчики — живые на канал, в группу

Просмотры — на посты и видео

Содержание:

Как создать бота в Telegram за 5 шагов: подробный гайд

Сделать бота самостоятельно может каждый рядовой пользователь. Для этого не нужно иметь навыков программиста. Мы расскажем, как создать бота в Телеграмм бесплатно и настроить его.

Заказать просмотры в Телеграмм и реальных подписчиков можно полностью безопасно и с гарантией. При переходе по ссылке Вы сможете выбрать ресурс по своим критериям и цене.

Наберите через поиск бота @BotFather и выберите команду /start, чтобы его запустить;

Введите /newbot для создания нового бота;

Придумайте и отправьте на русском языке его название;

Затем напишите username на латинском, в конце обязательно добавьте слово «Bot», например «Super_bot» Можно писать всё слитно или использовать нижнее подчёркивание. Если имя будет составлено некорректно или уже занято, бот Вам сообщит об этом в ответном месседже и предложит попробовать ещё раз;

Далее Вы получите ссылку на Вашего бота. Выделенный фрагмент на фото — Ваш токен, он Вам ещё понадобится на следующих этапах.

Теперь можно выполнить настройку созданного бота:

Если хотите загрузить аватарку, тогда отправьте команду /setuserpic, а затем изображение;

Чтобы сделать описание бота, введите команду /setabouttext и затем напишите 2-3 предложения с описанием;

Команда /setdescription позволяет создать приветственное сообщение для посетителей. В этом послании Вы можете рассказать, что умеет Ваш бот. Вы наверняка неоднократно видели такие авто сообщения при запуске ботов;

Заказать услуги раскрутки недорого можно ниже

100 Подписчиков для канала
открытого (Офферный микс)

мин.от 100 ед./ макс. до 10000 ед.

Запуск от 12 до 24 час..

500 Подписчиков для канала
открытого (Офферный микс)

мин.от 100 ед./ макс. до 10000 ед.

Запуск от 12 до 24 час..

1000 Подписчиков для канала
открытого (Офферный микс)

мин.от 100 ед./ макс. до 10000 ед.

Запуск от 12 до 24 час..

10000 Подписчиков для канала
открытого (Офферный микс)

мин.от 100 ед./ макс. до 10000 ед.

Запуск от 12 до 24 час..

    emptylines
100 Подписчиков Живых
(Для открытых/закрытых групп)

мин.от 100 ед./ макс.до 8000 ед.

Запуск 10-120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

500 Подписчиков Живых
(Для открытых/закрытых групп)

мин.от 100 ед./ макс.до 8000 ед.

Запуск 10-120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

1000 Подписчиков Живых
(Для открытых/закрытых групп)

мин.от 100 ед./ макс.до 8000 ед.

Запуск 10-120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

5000 Подписчиков Живых
(Для открытых/закрытых групп)

мин.от 100 ед./ макс.до 8000 ед.

Запуск 10-120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

100 Подписчиков Живых
(Для открытого/закрытого канала/группы)

мин. от 100 ед./ макс. до 3000 ед.

Запуск 20-180 мин.

Гарантия 30 дней

Активность в виде просмотров постов

500 Подписчиков Живых
(Для открытого/закрытого канала/группы)

мин. от 100 ед./ макс. до 3000 ед.

Запуск 20-180 мин.

Гарантия 30 дней

Активность в виде просмотров постов

1000 Подписчиков Живых
(Для открытого/закрытого канала/группы)

мин. от 100 ед./ макс. до 3000 ед.

Запуск 20-180 мин.

Гарантия 30 дней

Активность в виде просмотров постов

5000 Подписчиков Живых
(Для открытого/закрытого канала/группы)

мин. от 100 ед./ макс. до 3000 ед.

Запуск 20-180 мин.

Гарантия 30 дней

Активность в виде просмотров постов

100 Подписчиков для канала
публичного/закрытого (Живые!)

мин. от 100 ед./ макс. до 8000 ед.

Запуск от 15 до 120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

500 Подписчиков для канала
публичного/закрытого (Живые!)

мин. от 100 ед./ макс. до 8000 ед.

Запуск от 15 до 120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

1000 Подписчиков для канала
публичного/закрытого (Живые!)

мин. от 100 ед./ макс. до 8000 ед.

Запуск от 15 до 120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

5000 Подписчиков для канала
публичного/закрытого (Живые!)

мин. от 100 ед./ макс. до 8000 ед.

Запуск от 15 до 120 мин.

Гарантия 30 дней

Активность в виде просмотров постов

    emptylines
    emptylines
    emptylines
    emptylines
    emptylines
1000 Просмотров 1 на пост
(Временная Акция!)

мин.1000 ед./ макс.1000 ед.

Оплата в пару кликов!

3000 Просмотров 1 на пост
(Временная Акция!)

мин.3000 ед./ макс.3000 ед.

Оплата в пару кликов!

5000 Просмотров 1 на пост
(Временная Акция!)

мин.5000 ед./ макс.5000 ед.

Оплата в пару кликов!

10000 Просмотров 1 на пост
(Временная Акция!)

мин.10000 ед./ макс.10000 ед.

Оплата в пару кликов!

    emptylines
100 Просмотров
на пост (Боты)

мин.100 ед./ макс.3000 ед.

Оплата в пару кликов!

500 Просмотров
на пост (Боты)

мин.100 ед./ макс.3000 ед.

Оплата в пару кликов!

1000 Просмотров
на пост (Боты)

мин.100 ед./ макс.3000 ед.

Оплата в пару кликов!

3000 Просмотров
на пост (Боты)

мин.100 ед./ макс.3000 ед.

Оплата в пару кликов!

100 Просмотров
(на 1 пост, Стандарт)

мин.100 ед./ макс.50000 ед.

Оплата в пару кликов!

300 Просмотров
(на 1 пост, Стандарт)

мин.100 ед./ макс.50000 ед.

Оплата в пару кликов!

500 Просмотров
(на 1 пост, Стандарт)

мин.100 ед./ макс.50000 ед.

Оплата в пару кликов!

1000 Просмотров
(на 1 пост, Стандарт)

мин.100 ед./ макс.50000 ед.

Оплата в пару кликов!

    emptylines
    emptylines
    emptylines
    emptylines
    emptylines
    emptylines

Чтобы сделать Вашего бота на русском:

Скопируйте его токен (см. пункт 5);

Найдите в поиске @manybot и запустите;

Нажмите на кнопку «Добавить нового бота»;

Затем щёлкните на «Я скопировал токен» и отправьте его боту;

Итак, у нас получилось создать бота с аватаром, описанием, активной ссылкой, русским меню и приветственным сообщением.

Как создать бота в Telegram за 5 шагов: подробный гайд

Чтобы настроить меню бота:

Нажмите кнопку «Пользовательские команды», а затем «Создать команду»;

Придумайте и напишите на латинице команду через знак «/», например: /setuserpic;

Затем отправьте текст на русском, который пользователи будут получать при выборе данной команды и нажмите «Сохранить»;

Выберите кнопку «Настроить главное меню»;

Кликните «Добавить пункт меню»;

Выберите созданную Вами команду;

Напишите на русском её название, которое будет отображаться на кнопке меню. Готово!

Как создать бота в Telegram за 5 шагов: подробный гайд

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

Быстро и 100% недорого накрутить подписчиков ботов в Телеграм можно на https://lowcostsmm.com. Таким образом Ваш канал или группа останутся в полной безопасности.

Ещё больше пошаговых алгоритмов на все случаи телеграммной жизни Вы найдёте на сайте Avi1.ru.

Как создать чат бота в Телеграмм: каталог ТОП сервисов

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

Теперь, когда бот готов, следует запрограммировать его на нужные функции. В этом Вам помогут сторонние сервисы:

Bot Kits — https://botkits.ru ;

На сервисе https://www.botobot.ru Вы можете открыть магазин в Telegram без привязки к уже существующему сайту:

Зайдите на него и выберите «Создать магазин»;

Запустите @botoboto_bot и отправьте ему токен Вашего бота;

В личном кабинете на сайте настройте параметры услуг.

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

На данном сайте https://flowxo.com Вы можете сделать чат-бота с необходимыми навыками программирования для ведения бизнеса. Это наиболее серьёзный сервис. Он предлагает широкий функционал, однако не все опции доступны бесплатно. Можно также использовать готовые макеты.

Как создать чат бота в Телеграмм: каталог ТОП сервисов

Если Вы хотите протестировать, как работают чат боты, тогда зайдите на тематические форумы, где за символическую плату или бесплатно Вам предложат скрипты.

Чтобы понять, как создать бота в Телеграмме для продаж, необходимо владеть, как минимум, азами программирования. Мы рекомендуем доверить это дело профессионалам. Если Вы дорожите доверием клиентов и Вашей репутацией, то лучше заплатить и получить готовый, надёжный и работающий продукт. Помните, что «скупой платит дважды».

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

Чем грозит настройка некачественного бота?

Утечкой важной информации, например паролей от магазина или клиентской базы;

Медленной загрузкой данных.

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

Как создавать ботов в Телеграм: ещё 2 полезные фишки

Запустить своего бота можно не только в целях ведения бизнеса и продаж. Создание ботов в Телеграм — это ещё и возможность развлечься или оптимизировать ведение своих каналов.

Вы можете создавать игры в мессенджере. В этом Вам поможет уже знакомый бот @BotFather . Необходимо:

Набрать команду /newbot и создать нового бота по инструкции;

Включить у него inline режим;

Ввести команду /newgame и принять условия соглашения;

Привязать созданного бота к @BotFather по инструкции;

Написать игру (html, css, js) и залить её на хостинг.

Этот же бот помогает в планировании контента. Если у Вас есть свой канал в Telegram и даже не один, то данная функция будет просто незаменима. Создавайте посты и заранее устанавливайте время их публикации, добавляйте кнопки или реакции:

Как создавать ботов в Телеграм: ещё 2 полезные фишки

Введите команду /addchannel;

Нажмите «Подключить нового бота»;

Перейдите в @BotFather и наберите команду /newbot;

Напишите название для бота на русском;

Затем отправьте username на латинице без пробелов;

Скопируйте token в полученном сообщении и отправьте его @ControllerBot ;

Сделайте нового бота администратором Вашего канала;

Перешлите боту @Controller Bot любой пост из паблика.

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

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

Как создать бота в телеграмме и настроить работу команд

Автор: Автор Checkroi

Что такое Telegram знает каждый пользователь соцсетей. Это один из самых популярных мессенджеров в России, с помощью которого можно не только переписываться с друзьями, но и продвигать различные бизнес-проекты.

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

Что такое чат-бот и для чего он нужен

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

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

Чат-бот — это виртуальный помощник, который запрограммирован выполнять определённые задачи. Такой помощник есть практически у каждой крупной компании, обучающей платформы или новостного канала.

Основные функции чат-бота:

  • ответы на самые часто задаваемые вопросы;
  • создание меню с командами для дальнейшей работы;
  • создание рассылок для подписчиков;
  • ведение статистики подписчиков;
  • развлекательный контент;
  • показ новостной ленты.

Чат-бот посылает запрограммированную информацию в зависимости от тематики канала. Это может быть график работы магазина, стоимость услуг, курс валют и так далее. В названии такого аккаунта всегда есть слово bot.

Основными преимуществами создания такого помощника является:

  • круглосуточная работа — чат-бот предоставит информацию для клиента 24/7;
  • клиент может моментально получить ответ на интересующий вопрос;
  • для работы с роботом не требуется установка дополнительных программ.

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

Создание чат-бота в телеграме

Для начала необходимо зайти в свой аккаунт в телеграмме или скачать приложение через App Store или Play Маркет. Для установки приложения на компьютер необходимо скачать установочный файл с официального сайта.

Следующий шаг как создать бота в телеграмме самостоятельно бесплатно — создание своего помощника с помощью специальных сервисов-конструкторов. Самые популярные:

  • Puzzlebot;
  • Manybot;
  • Botobot;
  • Bottap;
  • BotFather.

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

Создаём чат-бот через сервис BotFather

Открываем приложение телеграма и в поисковой строке набираем имя «BotFather». Это официальный системный бот приложения, который помогает с регистрацией других ботов в мессенджере. Обратите внимание, что у данного сервиса есть официальное подтверждение — синяя галочка.

Открываем приложение телергама и в поисковой строке набираем имя «BotFather»

Шаг 1. Бот запрограммирован давать ответы, поэтому он никогда не начинает диалог. Чтобы получить информацию об установке вашего помощника, необходимо дать системному боту команду. Напишите в диалоговое окно /newbot. Далее бот будет задавать вопросы или давать инструкции.

Необходимо придумать имя боту

Шаг 2. Необходимо придумать имя боту — оно будет отображаться в поисковой строке в списке контактов. Как правило, существующему названию компании или профиля в соцсети дописывают приставку bot. Если имя занято, то будут приходить системные сообщения — необходимо придумать другое. Для названия помощника можно использовать от 5 до 32 символов.

Если имя занято, то будут приходить системные сообщения — необходимо придумать другое

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

Токен необходимо скопировать и вставить в диалоговое окно

Чат-бот готов. Для дальнейшей работы необходимо будет скопировать токен и вставлять на рабочие платформы для перехода в чат-бот. Также токен необходимо скопировать и вставить в диалоговое окно и после того придёт системное сообщение, что бот принят и готов к дальнейшей работе.

Настраиваем чат-бот

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

Для этого нужно в диалоговом окне нажать команду /mybots. Появится меню настроек и редактирования.

Появится меню настроек и редактирования

И далее по очереди делаем описание каждого необходимого пункта. В любой момент можно редактировать описание и менять информацию.

В любой момент можно редактировать описание и менять информацию

Создаём команды для чат-бота

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

Ниже отобразится список команд, которые можно использовать в работе с ботом:

  • /newpost — отправка сообщений подписчикам;
  • /schedule — посмотреть отложенные посты;
  • /subscrlbers — посмотреть количество подписчиков;
  • /commands — создание собственных команд и настройка бота;
  • /botlang — установка языка бота
  • /setdescription — возможность отредактировать описание бота;
  • /channels — настройка автоматической выкладки постов в Телеграм;
  • /admins — управление администраторами бота;
  • /tutorials — ответы на вопросы, связанные с созданием и настройкой бота;

Данный список команд виден только владельцу бота. Например, если необходимо выложить пост, следует нажать на вкладку /newpost и выполнить дальнейшие указания.

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

Для удобства общения подписчиков с ботом необходимо создать несколько горячих кнопок

Название команды задаётся латинскими буквами. Впереди всегда необходимо ставить слэш / (косая черта). После ввода имени команды в поле и нажимаем «enter».

После ввода имени команды в поле и нажимаем «enter»

Сейчас заходя в бот, посетители видят коммуникационную кнопку. Далее необходимо создать ответ бота, который будет получать подписчик, нажав на кнопку. Не забываем сохранить ответ, который будет отображаться.

Далее необходимо создать ответ бота, который будет получать подписчик, нажав на кнопку

Если всё сделано верно, то придёт системное сообщение о том, что команда создана и она сразу будет отображаться. Самые популярные команды:

  • ответы на популярные вопросы;
  • прайс с ценами;
  • сторонняя ссылка, где скачать бесплатную информацию — подарок при регистрации или покупки товара/услуги.

С помощью таких информационных кнопок клиент может быстро получить всю интересующую его информацию.

Добавляем команду в меню бота

Чтобы каждый раз не приходилось вручную вводить команду, необходимо создать кнопки запроса. Для этого нажимаем на кнопку «Настроить главное меню» и далее выбираем команду «Добавить пункт меню».

Для этого нажимаем на кнопку «Настроить главное меню» и далее выбираем команду «Добавить пункт меню»

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

Выбираем из списка своих команд, которую необходимо вставить в меню, вводим название и отправляем боту

После этого кнопка отобразится в меню, именно в таком варианте её видит посетитель чат-бота.

Удаляем и редактируем команды

Все созданные команды можно отредактировать или удалить в любой момент. Для этого необходимо зайти в меню, кликнуть по самой команде и выбрать нужное действие.

Все созданные команды можно отредактировать или удалить в любой момент

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

Читать:
Как попасть в каталог телеграмм каналов

Заключение

Чат-бот — это неотъемлемый помощник в коммуникации с клиентом и в сборе информации. Каждый, кто прочёл нашу пошаговую инструкцию как создать бота в телеграмме самому бесплатно, теперь точно знает последовательность нужных действий. Всего за несколько минут можно создать виртуального консультанта, который будет всё время на связи с клиентом.

Пишем бота Telegram на PHP

Anton Bagaiev

Anton Bagaiev Aug 3, 2016

Russian (Pусский) translation by Sergey Zhuk (you can also view the original English article)

Если вы читаете это, то скорее всего понимаете, что боты для чатов является популярным трендом в 2016 году.

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

И наиболее популярным мессенджером с открытым API для ботов является Telegram.

Что мы собираемся делать

В этой статье мы создадим простой бот-секундомер для Telegram. Я покажу вам как создавать собственного бота, связываться с аналитикой, напишем немножко кода и в конце добавим своего бота в магазин ботов.

Кстати я заранее приготовил демо, так что вы можете протестировать бота, просто добавив @stopwatchbot в свой контакт лист в Telegram.

Создаем бота с помощью BotFather

Первым шагом при создании бота нужно зарегистрировать аккаунт для своего бота в Telegram. И для этого есть собственный бот, который называется BotFather. Просто добавьте его в свой контакт лист и вы сможете создавать и настраивать ботов Telegram, просто напечатав команду /newbot и следуя инструкциям от BotFather.

BotFather running TelegramBotFather running Telegram BotFather running Telegram

После регистрации вашего нового бота, вы получите сообщение с поздравлением и токен для авторизации. Мы скоро будем использовать этот токен для авторизации бота и отправки запросов к Bot API.

Позднее вы сможете использовать BotFather для добавления описаний и фото к профилям ваших ботов, регенерации токенов, задания списка доступных боту команд, удаления аккаунтов и прочее. Чтобы получить полный список команд, просто напечатайте /help в чате с BotFather.

Соединяемся с Botan Analytics

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

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

Bot Analytics GraphBot Analytics Graph Bot Analytics Graph

Для того чтобы начать, нужно зарегистрировать ваше бота в Botan и получить свой токен. И опять же это можно сделать в боте, используя BotanioBot:

Registering a bot in TelegramRegistering a bot in Telegram Registering a bot in Telegram

Просто нажмите на «Add bot» на вашей клавиатуре в диалоговом окне, введите ник вашего бота, и получите ваш токен для трекинга. Теперь Botanio готов регистрировать события вашего бота, а вы можете получать статистику по пользователям, сессиям и событиям прямо в вашем мессенджере.

Создание и регистрация SSL Webhook

В Telegram есть два способа получения сообщений от пользователей: длинный опрос и webhooks.

A diagram of the Telegram APIA diagram of the Telegram API A diagram of the Telegram API

Обычно с долгим опросом, вам необходимо запрашивать новые сообщения из API, а с webhooks вы устанавливаете свой обратный вызов, который будет вызван API Telegram, если появится новое сообщение от пользователя. Я предпочитаю использовать webhooks потому что это больше похоже на взаимодействие в реальном времени, так что в этой статье мы так же будем использовать этот способ. Теперь нам нужно выбрать URL для обратного вызова нашего webhook, который будет вызван по HTTPS протоколу, и нужно установить его достаточно безопасным, и расположить свой скрипт в безопасной директории как сказано в руководстве:

Если у вас подтвержденный SSL сертификат, то все что вам нужно, это открыть ваш URL в браузере:

Иначе необходимо сгенерировать самоподписанный сертификат. Вот пример команды в Linux для этого:

И не забудьте открыть SSL порт:

Чтобы подтвердить ваш сертификат и сделать ваш домен для webhook доверительным, необходимо загрузить свой публичный ключ:

В итоге вы получите следующий JSON ответ:

В нем сказано что webhook был установлен и мы готовы начать работу с ботом.

Создаем базу данных

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

Чтобы показывать текущее время секундомера, мы будем брать сохраненную метку времени и сравнивать ее с текущим временем. Разница и будет текущее время в секундах. Если пользователь останавливает секундомер, то мы просто удаляем строчку с данным ID чата.

Итак давайте создадим базу данных и таблицу для хранения информации для секундомера:

Создание класса Stopwatch

Наконец мы готовы начать писать код. Создадим класс для работы с базой данных в файле stopwatch.php и начнем с конструктора, который устанавливает два приватных свойства, где мы будем хранить ID чата и соединение с MySQL:

Когда пользователь запускает таймер, мы берем текущую временную метку Unix и сохраняем ее вместе с ID чата в методе start() :

Если таймер останавливается, то нам нужно удалить строку из базы данных:

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

Как видите, если в базе данных нет значения, то метод status() ничего не вернет, и мы обработаем значение null как остановленный таймер.

Выбор библиотеки PHP

Есть много PHP библиотек для работы с Telegram API, но на момент написания этой статьи лишь одна поддерживала одновременно Telegram Bot API и трекинг Botan. Она называется PHP Telegram Bot API.

Для установки библиотеки используем Composer:

Если вам не нужна аналитика, то попробуйте Bot API PHP SDK с интеграцией в Laravel или PHP Telegram Bot.

Запуск Webhook скрипта

И вот мы переходим к главной части — мы создаем скрипт для обработки обратных вызовов от Telegram Bot API. Создадим файл index.php и включим в него автозагрузчик Composer и новый класс Stopwatch. Откроем соединение MySQL, создадим нового клиента Telegram API и запустим его:

Создание команд

Теперь нужно настроить ответ бота на команду /start . Эта команда используется для старта всех ботов Telegram, и пользователям будет показано наше сообщение с приветствием.

Здесь в методе command() мы определим замыкание для получения команды. Замыкание получает ID текущего чата и отправляет сообщение с приветствием. Так же все зарегистрированные команды автоматически по имени команды.

Для запуска секундомера, мы определим команду /go:

Она создаст объект класса Stopwatch и запустит таймер, вызывав метод start() , который мы определили ранее.

Чтобы определить команду /status , делаем аналогично. Просто вызываем метод status() и возврашаем результат. Если метод вернул null, сообщаем пользователю, что таймер не был запущен.

А если пользователь останавливает таймер, то нам нужно сначала получить статус, показать результирующее время, а затем остановить таймер, используя метод stop() .

И это все! Теперь вы можете загрузить все необходимые файлы в вашу директорию для webhook и протестировать своего бота.

Добавление клавиатуры

Чтобы предложить пользователю, какие команды он может выполнять, мы можем к сообщению добавить клавиатуру. Наш таймер может быть в двух состояниях: запущен или остановлен. Для того чтобы показать пользователю клавиатуру, нам нужно просто переопределить метод sendMessage() :

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

Добавление бота в Store

Хорошо, теперь у нас есть работающий бот, и мы хотим показать его миру. Лучшим способом будет зарегистрировать бота в каталоге ботов. Сейчас у Telegram нет официального каталога, но есть несколько неофициальных, и самый большой из них — Storebot.me, в котором уже зарегистрированы тысячи ботов.

И в нем есть бот. для регистрации бота в каталоге ботов! Добавляем @storebot в свой контакт лист, пишем команду /add и следуем инструкциям. Вас попросят ввести имя бота, описание, выбрать одну из стандартных категорий, и подтвердить права на бота отправкой токена.

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

Заключение

Мы прошли длинный путь, от создания простого бота до регистрации его в store, сделав его доступным для реальных пользователей. Как вы могли убедиться, существует много инструментов, которые сделают вашу жизнь проще при создании собственного бота, и не нужно писать много кода для создания простого бота. Теперь вы готовы к созданию собственного бота!

Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях под статьей.

Пишем простого чат-бота для Telegram на PHP

Шукюров Заур, разработчик @KinomanBot и @GaidarForum_bot, написал руководство по созданию простого чат-бота.

24 июня 2015 года разработчики Telegram открыли платформу для создания ботов (программ, которые выполняют определенные действия по заданному алгоритму). За полтора года работы платформы набралось много интересных чат-ботов, решающих множество проблем и позволяющих с пользой провести время в мессенджере.

Шаг 1: регистрация бота у @BotFather

Прежде чем начать писать код, нового бота нужно зарегистрировать у «папы всех ботов» — @BotFather, чтобы получить токен (ключ) для работы с Telegram API. Регистрация проходит в 5 простых этапов:

  1. Открываете чат с @BotFather.
  2. Вводите или выбираете из списка команду /newbot.
  3. Отправляете желаемое название для бота.
  4. Пишете юзернейм бота, по которому его будут находить через поиск. Обязательно на конце вашего юзернейма должно быть слово «bot» или «_bot». Например, NetologyRSSbot.
  5. По желанию можно сразу настроить полное или краткое описание, список команд и аватарку.

По итогу регистрации получаем наш токен — 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s.

Будьте осторожны: никогда и никому не показывайте токен, иначе ваш бот может быть скомпрометирован. Если по несчастливой случайности кто-то нехороший все-таки узнал ваш токен, то заменить его можно всё в том же @BotFather, нажав на кнопку «Revoke current token» в разделе «API Token».

Шаг 2: выбираем способ обработки запросов

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

  1. Проверять «вручную», используя «Long Polling».
  2. Доверить всё Telegram, поставив «Webhook». В этом случае любой запрос от пользователя Telegram сам будет посылать нам на сервер.

Мы остановимся на втором варианте, но у него есть ограничение: у вас на сайте обязательно должен быть установлен SSL-сертификат, чтобы все запросы проходили через безопасный протокол HTTPS. Самоподписанные и бесплатные сертификаты «Let’s Encrypt», которые поддерживает большинство хостингов, также подходят.

Пример настройки самоподписанного сертификата из официальной документации Telegram.

Шаг 3: пишем код

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

Перво-наперво привязываем через метод SetWebhook бота к нашему файлу-обработчику. Сделать это можно при помощи библиотеки, но есть вариант быстрее и проще – это построить вот такую ссылку:

https://api.telegram.org/bot375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s/setWebhook?url=https://yoursitehere.ru/directory/bot.php,

375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s — это наш токен,

https://yousitehere.ru/directory/bot.php — ссылка на файл-обработчик на нашем сайте.

Открыв в браузере эту ссылку, должен прийти JSON-ответ со значением «Webhook was set», что будет означать, что вебхук установлен, и теперь все запросы от пользователей будут присылаться по адресу файла-обработчика.

Переходим к самому главному — обработке этих самых запросов и написанию функционала бота. Ниже представлен полный листинг файла-обработчика:

include(‘vendor/autoload.php’); //Подключаем библиотеку

$telegram = new Api(‘375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s’); //Устанавливаем токен, полученный у BotFather

$result = $telegram -> getWebhookUpdates(); //Передаем в переменную $result полную информацию о сообщении пользователя

$text = $result[«message»][«text»]; //Текст сообщения

$chat_id = $result[«message»][«chat»][«id»]; //Уникальный идентификатор пользователя

$name = $result[«message»][«from»][«username»]; //Юзернейм пользователя

$reply = «Добро пожаловать в бота!»;

$reply_markup = $telegram->replyKeyboardMarkup([ ‘keyboard’ => $keyboard, ‘resize_keyboard’ => true, ‘one_time_keyboard’ => false ]);

$telegram->sendMessage([ ‘chat_id’ => $chat_id, ‘text’ => $reply, ‘reply_markup’ => $reply_markup ]);

$reply = «Информация с помощью.»;

>elseif ($text == «Последние статьи») <

foreach ($html->channel->item as $item) <

$telegram->sendMessage([ ‘chat_id’ => $chat_id, ‘text’ => «Отправьте текстовое сообщение.» ]);

Разберем всё по порядку.

1. Сначала мы подключаем скачанную библиотеку, указав путь (лучше полный) до файла автозагрузчика.

include(‘vendor/autoload.php’); //Подключаем библиотеку

2. Создаем экземпляр класса в переменной $telegram и передаем в него наш токен. В переменной $result получаем информацию о сообщении, которое пришлет нам Telegram.

$telegram = new Api(‘375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s’); //Устанавливаем токен, полученный у BotFather

$result = $telegram -> getWebhookUpdates(); //Передаем в переменную $result полную информацию о сообщении пользователя

3. Затем определяем главные переменные: текстовое сообщение, уникальный идентификатор пользователя и его юзернейм. Если предстоит работа с БД, то не забывайте про фильтрацию (или лучше используйте PDO).

$text = $result[«message»][«text»]; //Текст сообщения

$chat_id = $result[«message»][«chat»][«id»]; //Уникальный идентификатор пользователя

$name = $result[«message»][«from»][«username»]; //Юзернейм пользователя

4. Создаем нашу клавиатуру, состоящую из трех кнопок.

5. Теперь, когда мы обозначили все переменные, можно перейти к обработке полученного сообщения. Для этого можно использовать конструкцию switch-case либо if-else. Так как принципиальной разницы между ними нет, остановимся на втором варианте, как наиболее привычном.

В самом начале проверяем, заполнена ли переменная $text и является ли сообщение пользователя текстовым.

$telegram->sendMessage([ ‘chat_id’ => $chat_id, ‘text’ => «Отправьте текстовое сообщение.» ]);

Если нет, то отправляем пользователю с помощью метода sendMessage сообщение с просьбой ввести текстовое сообщение.

6. Рассмотрим вариант, когда пользователь прислал сообщение с командами /start или /help

$reply = «Добро пожаловать в бота!»;

$reply_markup = $telegram->replyKeyboardMarkup([ ‘keyboard’ => $keyboard, ‘resize_keyboard’ => true, ‘one_time_keyboard’ => false ]);

$telegram->sendMessage([ ‘chat_id’ => $chat_id, ‘text’ => $reply, ‘reply_markup’ => $reply_markup ]);

$reply = «Информация с помощью.»;

$reply_markup = $telegram->replyKeyboardMarkup([ ‘keyboard’ => $keyboard, ‘resize_keyboard’ => true, ‘one_time_keyboard’ => false ]);

$telegram->sendMessage([ ‘chat_id’ => $chat_id, ‘text’ => $reply, ‘reply_markup’ => $reply_markup ]);

В этом случае помимо текста из переменной $reply будет подгружаться клавиатура, состоящая из трёх кнопок: «Последние статьи», «Картинка» и «Гифка». Реализуется это с помощью метода replyKeyboardMarkup, параметрами которого являются:

  • ‘keyboard’ => $keyboard, передаем нашу клавиатуру;
  • ‘resize_keyboard’ => true, клавиатура будет сжата в размерах;
  • ‘one_time_keyboard’ => false, клавиатура не исчезнет после нажатия на какую-то кнопку.

7. После появления клавиатуры пользователь явно захочет попробовать потыкать на расположенные на ней кнопки, и вот что у нас «под капотом» в этом случае

>elseif ($text == «Последние статьи») <

foreach ($html->channel->item as $item) <

8. Для отправки картинки используется метод sendPhoto, для отправки гифки – sendDocument. В обоих случаях Telegram позволяет передавать прямую ссылку на файл, что безусловно очень удобно, но не так быстро, как если бы мы передавали file_id уже отправленной на сервера Telegram картинки или гифки.

9. Для получения последних статей используется простой парсинг RSS ленты Нетологии при помощи встроенной в PHP функции simplexml_load_file.

В параметрах метода sendMessage можно заметить два новых значения:

  1. ‘parse_mode’ => ‘HTML’, чтобы в сообщение можно было вставить HTML-теги (<b>, <a>, <i>, <code> или <pre>).
  2. ‘disable_web_page_preview’ => true, чтобы к сообщению со ссылкой не подгружалось превью.

10. В качестве смайла (стрелка вправо) используются символы \xE2\x9E\xA1. Список всех смайлов в таком виде можно найти на специальном сайте.

Пишем простого чат-бота для Telegram на PHP

11. После того, как вы протестируете бота и будете уверены в его работоспособности, можно отправлять его на всеобщее обозрение.

Благодаря удобному API, боты Telegram могут стать хорошей платформой для автоматизации рутинных действий, настройки уведомлений, удобному и быстрому получению информации и созданию игр. Бесплатными площадками для продвижения могут послужить каталоги ботов Telegram Bot Store, TeleChappy или 50bots. А анализировать активность пользователей можно с помощью бесплатного инструмента для аналитики ботов от Яндекса — Botan.

От редакции

PHP — один из самых популярных языков программирования. Его легко изучать, с ним легко работать, у него мощное сообщество. 5 мая «Нетология» запускает курс «PHP/SQL: back-end разработка и базы данных», где ведущие программисты расскажут об управляющих конструкциях, циклах, функциях, о строках и массивах. Вы узнаете все про реляционные базы данных и язык запросов SQL, научитесь устанавливать и настраивать веб-сервер nginx и php, управлять базами данных различной сложности. Ждем вас!

Похожие статьи