телеграм бот php mysql

Диалоговый телеграм бот на PHP

Создание бота

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

Связываем бота с приложением\сайтом

Начинается самое интересное, а также именно тут я столкнулся с первой проблемой.
Первым делом выбираем библиотеку на php по созданию бота. Я свой выбор остановил на этой библиотеке, так как мне она показалась самой удобной.

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

Вебхук — это своего рода ретранслятор, который все запросы от бота будет передавать на адрес, указанный при регистрации вебхука. Зарегистрировать вебхук очень просто, нужно просто отправить запрос вида https: //api.telegram.org/bot

/setWebhook?url=https: //example.ru/path, где
https: //example.ru/ — это ссылка на ваш сайт, куда будет перенаправлять бот запросы.

— это токен, который вы получили при регистрации своего бота.
path — это часть url, на которую будут приходить обращения.

И вот именно тут возникает проблема. Оказывается вебхук можно зарегистрировать только в случае, если сайт находится на https. Если же ваш сайт на http, то зарегистрировать вебхук вам не получится.

Написание кода бота

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

Разработчики telegram, для того чтобы пользователям было проще работать с ботами, просят всех разработчиков реализовывать поддержку следующих команд:

/start — начинает общение с пользователем (например, отправляет приветственное сообщение). В эту команду также можно передавать дополнительные аргументы.
/help — отображает сообщение с помощью по командам. Оно может представлять собой короткое сообщение о вашем боте и список доступных команд.

Все что нам нужно сделать, это в контроллере вашего приложения\сайта написать следующий код:

Теперь если в окне телеграм бота написать /help, то будет выведен текст:

Команды:
/help — вывод справки

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

Так как команды могут принимать аргументы, то мы эту возможность используем. Например, мы сделаем так, чтобы наш бот, на команду hello Вася, отвечал сообщением: Привет, Вася.

Для этого следует написать следующий код:

Получается все очень просто и быстро.

Заносим список команд бота

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

необходимо боту BotFather сообщить список команд.
Сделать это можно с помощью его команды /setcommands

Велосипедство

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

Значит нужно сделать так, чтобы бот запоминал команду, которую вы вводите. Это можно сделать с помощью любого хранилища (MySQL, memcached, redis, tarantool, Postgres, etc)
Все что нужно, это запоминать предыдущий ввод пользователя.

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

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

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

Для начала мы описываем точку входа в контроллер

Теперь рассмотрим один из методов.

Так стало все в разы приятнее, интерактивнее и удобнее.

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

UPD: боту добавлена возможность отдавать фото на некоторые виды запросов. Например на
/gettable — возвращает результирующую таблицу спортивных событий
/getevents — возвращает события спортивных мероприятий

Источник

Бот Телеграм на PHP

Примеры как зарегистрировать бота в Telegram, описание и взаимодействие с основными методами API. Документация на core.telegram.org и tlgrm.ru (неофициальный, на русском).

Все запросы к API должны осуществляться по HTTPS, подойдет бесплатный сертификат «Let’s Encrypt».

Регистрация бота

Для регистрации нового бота нужно написать «папе ботов» @BotFather команду /newbot

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Следующим сообщением отправляем название для бота, обязательно на конце имени должно быть слово «bot» или «_bot». Ответным сообщением получим токен:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Тут же можно настроить описание и аватарку:

/setnameИмя
/setdescriptionКраткое описание
/setabouttextОписание бота
/setuserpicЮзерпик

Далее нужно поставить «Webhook» чтобы все сообщения из Telegram приходили на PHP скрипт ( https://example.com/bot.php ). Для этого нужно пройти по ссылке в которой подставлены полученный токен и адрес скрипта.

https://api.telegram.org/bot /setWebhook?url= https://example.com/bot.php

В ответе будет

При смене токена, установку вебхука нужно повторить.

Входящие сообщения

Чтобы посмотреть входящие данные, их придется дампить в файл:

Источник

Mysql и Telegram bot

В интернете и так полным-полно мануалов по подключению базы данных к любому скрипту. Однако, несмотря на такое обилие информации, мои комментарии буквально ломятся от вопросов вида «как?»: «подключить, использовать, настроить» базу данных к telegram боту. Окей, почему бы не написать об этом соответствующую статью.

За основу возьмем заготовку, написанную в статье про бота для Telegram на Php, потому что в основном такие сложности возникают у читателей в комментариях этого материала.

Основа

Имеется скрипт-заготовка бота и имеется mysql, а так-же phpmyadmin, который мы и будем использовать для создания базы.

Да, чтобы работать с базой данных ее надо сначала… создать! Увы, система не сделает ничего за вас, придется делать все вручную. При первом знакомстве в mysql меня это немного разочаровало, но такова реальность. Можно, конечно, написать скрипт инициализации на манер wordpress’овского, я подобное уже делал, но это явно будет не уровень новичка. Поэтому руками, все руками!

Открываем phpmyadmin, заходим туда и создаем новую базу данных. Я назову ее «revcom_base»;

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Называем ее users и тыкаем «вперед». После чего задаем параметры столбцов в таблице:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

ВНИМАНИЕ! Тут опечатка у поля Name должен быть тип или TEXT или VARCHAR!

Поле id у нас имеет атрибут A_I, то есть AUTO_INCREMENT, что означает буквально: у каждого нового пользователя будет свой id, который автоматически будет увеличиваться на 1 для каждого нового пользователя. Поле data_json — это данные пользователя. Если проще — обычное текстовое поле. В него будем записывать пользовательские настройки в формате json. Остальное думаю и так понятно.

Замечу, что все это можно было сгенерить используя SQL, но для простоты делать этого мы тут не будем.

Тыкаем внизу «создать» и получаем первую и единственную нужную нам для демонстрации таблицу. Теперь создадим «модель» то есть php обертку таблицы, которая удобно позволит работать с ней. Ато развелось любителей создавать сложные select запросы и всякие там fetch_assoc прямо в обработчиках команд… Так конечно тоже можно, но код смотрится страшно… И это не верный подход. Поэтому делать будем обертку.

Однако сначала подключение.

Подключение к базе данных

Тут все элементарно. Создаем файл «db_connect.php» прямо в папке бота, куда помещаем типичный шаблонный код:

Используем этот файл в начале нашего бота, размещая там строчку

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysqlИ на страничке бота ошибок нет:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Если у вас есть — указывайте правильные логин и пароль к базе до тех пор пока ошибки не пропадут.

Модель базы

Теперь делаем обертку для нашей базы данных.

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

Ну вот и пишем нужные нам методы.

Вставка пользователей в базу

Первый метод — это создание, то есть сохранение юзера, в таблицу и выглядеть он будет так:

Добавим этот метод в файл users.php, который, разумеется, надо сначала создать. Этот файл и будет нашей моделью для работы с базой.

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql
Подключать его надо ниже под db_connect.php, вот так:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Ну и, чтобы … убрать вашу неуверенность, вот так выглядит сам файл users.php с нужным нам методом, на данном этапе:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Теперь давайте протестируем как работает этот метод. Человек должен добавляться в базу при поступлении от него первой команды. Поэтому лучше всего будет добавить метод make_user в начало секции on то есть вот, примерно, так:

Если у вас уже этот обработчик есть просто добавьте строчку make_user($message->getFrom()->getUsername(),$cid); в нужное место.

Ну и, собственно, сохраняем, а потом пишем что-нибудь боту. Это должно добавить новую запись в таблицу.

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Ремарка: у меня phpmyadmin глючит(чинить лень ибо это ни на что не влияет), поэтому внутрь таблицы я зайти не могу(а значит не могу и скриншет содержимого сделать), это исключительно проблема моего собственного сервера, у вас таких проблем быть не должно.

Впрочем это никак не повредит мне в разработке т.к. я отлично представляю себе как работает mysql.

Проверка на наличие пользователя в базе

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

Для этого будем использовать запрос select и mysql_fetch_array вот так:

Теперь мы можем проверять есть этот пользователь в базе или нет. Делаем в методе on так:

Отлично, теперь сущности не плодятся:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Сохранение пользовательских данных

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

Для проверки этих методов засунем в on такой код:

Теперь можно написать что-нибудь в бота и посмотреть на результат. Сначала надпись будет в базу помещена, а потом выдана нам в формате массива.

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Все работает, так, как я и задумывал.

Пример использования

Теперь давайте сделаем небольшое взаимодействие с этим инструментарием.

Создадим разветвленный диалог вида: «ваше имя, ваш сайт» и после получения этих данных сохраним их в базе.

При вызове команды /dbact мы сможем пройти такой вот диалог:

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

Скачать готовый пример

Как обычно вы можете скачать готовый пример бота с этим функционалом

Источник

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

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

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

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

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

Регистрация проходит в 5 простых этапов:

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

По итогу регистрации получаем наш токен — 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, но чтобы не изобретать заново колесо, воспользуемся уже готовой и очень удобной библиотекой.

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

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

Ниже представлен полный листинг файла-обработчика:

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

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

2. Создаем экземпляр класса в переменной $telegram и передаем в него наш токен.

В переменной $result получаем информацию о сообщении, которое пришлет нам Telegram.

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

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

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

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

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

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

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

Реализуется это с помощью метода replyKeyboardMarkup, параметрами которого являются:

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

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

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

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

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

Бесплатными площадками для продвижения могут послужить каталоги ботов Telegram Bot Store, TeleChappy или 50bots.

А анализировать активность пользователей можно с помощью бесплатного инструмента для аналитики ботов от Яндекса — Botan.

Источник

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

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.

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysqlтелеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

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

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

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

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysqlтелеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysqlтелеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

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

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysqlтелеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

Обычно с долгим опросом, вам необходимо запрашивать новые сообщения из 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() :

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysqlтелеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql телеграм бот php mysql. Смотреть фото телеграм бот php mysql. Смотреть картинку телеграм бот php mysql. Картинка про телеграм бот php mysql. Фото телеграм бот php mysql

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

Заключение

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *