телеграм бот библиотека php

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Телеграм бот библиотека php

A Telegram Bot based on the official Telegram Bot API

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

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

This is a pure PHP Telegram Bot, fully extensible via plugins.

Telegram announced official support for a Bot API, allowing integrators of all sorts to bring automated interactions to the mobile platform. This Bot aims to provide a platform where one can simply write a bot and have interactions in a matter of minutes.

This code is available on GitHub. Pull requests are welcome.

Create your first bot

Message @BotFather with the following text: /newbot

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

@BotFather replies with:

Type whatever name you want for your bot.

@BotFather replies with:

@BotFather replies with:

Note down the ‘token’ mentioned above.

Optionally set the bot privacy:

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

@BotFather replies with:

Type (or select) @telesample_bot (change to the username you set at step 5 above, but start it with @ )

@BotFather replies with:

Type (or select) Disable to let your bot receive all messages sent to a group.

@BotFather replies with:

Require this package with Composer

Create composer.json file

and run composer update

run this command in your command line:

Choose how to retrieve Telegram updates

WebhookgetUpdates
DescriptionTelegram sends the updates directly to your hostYou have to fetch Telegram updates manually
Host with httpsRequiredNot required
MySQLNot required(Not) Required

Using a custom Bot API server

For advanced users only!

As from Telegram Bot API 5.0, users can run their own Bot API server to handle updates. This means, that the PHP Telegram Bot needs to be configured to serve that custom URI. Additionally, you can define the URI where uploaded files to the bot can be downloaded (note the placeholder).

Note: For a more detailed explanation, head over to the example-bot repository and follow the instructions there.

In order to set a Webhook you need a server with HTTPS and composer support. (For a self signed certificate you need to add some extra code)

Create set.php with the following contents:

Now, create hook.php with the following contents:

Self Signed Certificate

Upload the certificate and add the path as a parameter in set.php:

Edit unset.php with your bot credentials and execute it.

For best performance, the MySQL database should be enabled for the getUpdates method!

Create getUpdatesCLI.php with the following contents:

Next, give the file permission to execute:

getUpdates without database

❗ Note that by default, Telegram will send any new update types that may be added in the future. This may cause commands that don’t take this into account to break!

It is suggested that you specifically define which update types your bot can receive and handle correctly.

You can define which update types are sent to your bot by defining them when setting the webhook or passing an array of allowed types when using getUpdates.

Alternatively, Update processing can be allowed or denied by defining a custom update filter.

All types are implemented according to Telegram API 5.3 (June 2021).

Full support for inline query according to Telegram API 5.3 (June 2021).

All methods are implemented according to Telegram API 5.3 (June 2021).

Messages longer than 4096 characters are split up into multiple messages.

If you know the file_id of a previously uploaded file, just use it directly in the data array:

To send a remote photo, use the direct URL instead:

sendAudio, sendDocument, sendAnimation, sendSticker, sendVideo, sendVoice and sendVideoNote all work in the same way, just check the API documentation for the exact usage. See the ImageCommand.php for a full example.

Retrieve the user photo. (see WhoamiCommand.php for a full example)

getFile and downloadFile

Get the file path and download it. (see WhoamiCommand.php for a full example)

Send message to all active chats

To do this you have to enable the MySQL connection. Here’s an example of use (check DB::selectChats() for parameter usage):

You can also broadcast a message to users, from the private chat with your bot. Take a look at the admin commands below.

MySQL storage (Recommended)

If you want to save messages/users/chats for further usage in commands, create a new database ( utf8mb4_unicode_520_ci ), import structure.sql and enable MySQL support BEFORE handle() method:

You can set a custom prefix to all the tables while you are enabling MySQL:

You can also store inline query and chosen inline query data in the database.

External Database connection

It is possible to provide the library with an external MySQL PDO connection. Here’s how to configure it:

All methods implemented can be used to manage channels. With admin commands you can manage your channels directly with your bot private chat.

The bot is able to recognise commands in a chat with multiple bots (/command@mybot).

It can also execute commands that get triggered by events, so-called Service Messages.

Maybe you would like to develop your own commands. There is a guide to help you create your own commands.

Also, be sure to have a look at the example commands to learn more about custom commands and how they work.

You can add your custom commands in different ways:

With this method you can set some command specific parameters, for example:

Enabling this feature, the bot admin can perform some super user commands like:

Take a look at all default admin commands stored in the src/Commands/AdminCommands/ folder.

You can specify one or more admins with this option:

Telegram user id can be retrieved with the /whoami command.

To enable this feature follow these steps:

Upload and Download directory path

To use the Upload and Download functionality, you need to set the paths with:

Take a look at the repo Wiki for further information and tutorials! Feel free to improve!

All project assets can be found in the assets repository.

We’re busy working on a full A-Z example bot, to help get you started with this library and to show you how to use all its features. You can check the progress of the example-bot repository).

Projects with this library

Here’s a list of projects that feats this library, feel free to add yours!

If you like living on the edge, please report any bugs you find on the PHP Telegram Bot issues page.

See CONTRIBUTING for more information.

See SECURITY for more information.

All work on this bot consists of many hours of coding during our free time, to provide you with a Telegram Bot library that is easy to use and extend. If you enjoy using this library and would like to say thank you, donations are a great way to show your support.

Donations are invested back into the project 👍

Thank you for keeping this project alive 🙏

Available as part of the Tidelift Subscription.

The maintainers of PHP Telegram Bot and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.

Please see the LICENSE included in this repository for a full copy of the MIT license, which this project is licensed under.

Источник

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

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

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

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

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

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

Начинается самое интересное, а также именно тут я столкнулся с первой проблемой.
Первым делом выбираем библиотеку на 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. Смотреть фото телеграм бот библиотека php. Смотреть картинку телеграм бот библиотека php. Картинка про телеграм бот библиотека php. Фото телеграм бот библиотека php

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Телеграм бот библиотека php

A PHP library to easily write Telegram Bots.

This library allows you to easily set up a PHP based Telegram Bot.

Create a new Telegram bot by contacting @BotFather and following official Telegram instructions

Clone the repository on your server:

Generate a self-signed SSL certificate, if needed (instructions by Telegram may be useful)

Place the public certificate.pem certificate in the root directory of php-telegram-bot-library

Open the lib/config.php file and set up configuration parameters accordingly to your needs

Open the install.php file:

Run install.php by opening the relative URL on a browser, or directly from command line: php install.php

Optionally, you can now remove install.php and the public SSL certificate inside of the root directory of php-telegram-bot-library

Alternatively, you can use the configure.html file to register your webhook.

First of all, if you’re not familiar with it, consult official Telegram Bot API.

Then, the lib directory (as configured after installation, see lib/config.php ) should be included into your project.

Assuming that, the first step is to include the library: this is possible through a single simple command:

Hence, it is needed to instantiate a new bot:

The next step is to instantiate a new trigger set:

This library supports automatic states management.

In order to switch state inside of a trigger function, you can use the following command:

It’s now possible to set up triggers for specific commands:

If 0 parameters are considered, you can also set up a phrase command to use as a trigger. For instance, a «Contact the staff» command may be executed through a custom keyboard. For commands not starting with a / symbol, or not directly sent to the bot, privacy mode changes may be required.

At this point, it is assumed that a trigger_welcome function is defined:

In particular, a single parameter of class telegram_function_parameters is always passed to the trigger/callback.

Following functions are available on telegram_function_parameters objects:

Similarly, it’s possible to register a trigger to use when a message includes specific text (case insensitive check):

Also, it’s possible to register a single generic trigger to use for each received command:

Finally, it’s possible to register a trigger to use if anything goes wrong:

Источник

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

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

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

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

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

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

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

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

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

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

По итогу регистрации получаем наш токен — 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. Смотреть фото телеграм бот библиотека php. Смотреть картинку телеграм бот библиотека php. Картинка про телеграм бот библиотека php. Фото телеграм бот библиотека php

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

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

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

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

Источник

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

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