Telegram бот на PHP

01.03.21

Интеграция - Мессенджеры и боты

Сделаем простого Telegram бота на PHP.

Для начала создадим бота в telegram. Для этого добавим себе в контакты системного бота "BotFather".

- Посылаем ему команду /newbot

- Далее посылаем "имя бота"

- После этого "BotFather" сообщаем token нового бота.

 

- Далее переносим код бота в текстовый файл telegram_bot.php

Файл нужно поместить на любой хостинг с подключенным SSL-сертификатом (https). Без сертификата работать не будет!

- Далее связываем файл на хостинге с telegram:

https://api.telegram.org/bot+ТокенБота+/setwebhook?url=+СсылкаНаБота

Пример: https://api.telegram.org/bot123asd123asd123asd/setwebhook?url=https://test123123.ru/telegram_bot.php

Для того чтобы отвязать бота от файла на хостинге:

https://api.telegram.org/bot+ТокенБота+/deleteWebhook

 
telegram_bot.php

 

<?php

$data = json_decode(file_get_contents('php://input'), TRUE);
//пишем в файл лог сообщений
//file_put_contents('file.txt', '$data: '.print_r($data, 1)."\n", FILE_APPEND);

$data = $data['callback_query'] ? $data['callback_query'] : $data['message'];

define('TOKEN', 'Ваш токен');

$message = mb_strtolower(($data['text'] ? $data['text'] : $data['data']),'utf-8');


switch ($message) {
    case 'да':
        $method = 'sendMessage';
		$send_data = [
			'text' => 'Что вы хотите заказать?',
			'reply_markup'  => [
				'resize_keyboard' => true,
				'keyboard' => [
						[
							['text' => 'Яблоки'],
							['text' => 'Груши'],
						],
						[
							['text' => 'Лук'],
							['text' => 'Чеснок'],
						]
					]
				]
			];
    break;
	case 'нет':
        $method = 'sendMessage';
		$send_data = ['text' => 'Приходите еще'];
    break;
	case 'яблоки':
        $method = 'sendMessage';
		$send_data = ['text' => 'заказ принят!'];
    break;
	case 'груши':
        $method = 'sendMessage';
		$send_data = ['text' => 'заказ принят!'];
    break;
	case 'лук':
        $method = 'sendMessage';
		$send_data = ['text' => 'заказ принят!'];
    break;
	case 'чеснок':
        $method = 'sendMessage';
		$send_data = ['text' => 'заказ принят!'];
    break;
	default:
		$method = 'sendMessage';
		$send_data = [
			'text' => 'Вы хотите сделать заказ?',
			'reply_markup'  => [
				'resize_keyboard' => true,
				'keyboard' => [
						[
							['text' => 'Да'],
							['text' => 'Нет'],
						]
					]
				]
			];
}

$send_data['chat_id'] = $data['chat'] ['id'];

$res = sendTelegram($method, $send_data);




function sendTelegram($method, $data, $headers = [])
{
	$curl = curl_init();
	curl_setopt_array($curl, [
		CURLOPT_POST => 1,
		CURLOPT_HEADER => 0,
		CURLOPT_RETURNTRANSFER => 1,
		CURLOPT_URL => 'https://api.telegram.org/bot' . TOKEN . '/' . $method,
		CURLOPT_POSTFIELDS => json_encode($data),
		CURLOPT_HTTPHEADER => array_merge(array("Content-Type: application/json"))
	]);
	$result = curl_exec($curl);
	curl_close($curl);
	return (json_decode($result, 1) ? json_decode($result, 1) : $result);
}

?>

 

Найдем нашего бота и добавим его в контакты

 

 

Стартуем бота в telegram и пробуем отправлять ему сообщения

 

 

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

SALE! 50%

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Расширение 1С с полным набором инструментов для качественных транзакционных, триггерных и маркетинговых рассылок Email, SMS, WhatsApp, Telegram. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

6000 3000 руб.

07.04.2014    91788    71    200    

152

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    39721    43    55    

78

Мессенджеры и боты Программист 1С:Предприятие 8 Россия Абонемент ($m)

Пример интеграции бота Viber и 1С.

1 стартмани

02.10.2020    10230    14    FirePyres    6    

17

Мессенджеры и боты Программист 1С:Предприятие 8 Абонемент ($m)

Долгое (на самом деле нет) и нелегкое путешествие телеграма к неведомым (из за РКН) конфигурациям 1С. Памятка себе.

1 стартмани

03.10.2019    37656    platonov.e    30    

102

Мессенджеры и боты Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    37434    81    budidich    20    

71

Мессенджеры и боты Программист 1C:Бухгалтерия Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    28112    feva    52    

201

Мессенджеры и боты Программист Пользователь 1С:Предприятие 8 Абонемент ($m)

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

10 стартмани

20.08.2019    30686    65    zfilin    80    

67

Мессенджеры и боты Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Абонемент ($m)

Обработка позволяет отправлять текстовые сообщения в Telegram. Разработана на простых формах.

1 стартмани

29.07.2019    6912    12    Dmitrij-2    1    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maksa2005 379 02.03.21 10:12 Сейчас в теме
Вот как это в 1с реализовать с учет истории вопросов и ответов.
2. Aleksandr_Kotelnikov_mmc 02.03.21 10:59 Сейчас в теме
(1) а в чем собственно проблема сделайте веб сервис опубликуйте и будет тоже самое
4. maksa2005 379 02.03.21 11:26 Сейчас в теме
(2)как бы я реализовал это давным давно. просто суть немного другая по ответу и вопросу
3. Aleksandr_Kotelnikov_mmc 02.03.21 11:00 Сейчас в теме
(1) ну а историю храните с регистре сведений
5. maksa2005 379 02.03.21 11:26 Сейчас в теме
(3)зачем такое засорять. пусть анализирует при чтении http. лично я не храню
6. nestokay 62 02.03.21 12:53 Сейчас в теме
7. 1c8programmer 17 04.03.21 14:28 Сейчас в теме
когда писал бота на php отдал предпочтение Этой либе. Рекомендую.
Заодно познал компосер
8. Crazy_Max 83 12.03.21 06:59 Сейчас в теме
Всё это здорово, но лишь один вопрос мне не даёт покоя: каким боком данная статься относится к инфостарту? Вот если бы веб-сервис на 1с для telegram-бота был реализован, и о нём статья была, то да. Но так...
9. Юстас 24 25.06.21 15:10 Сейчас в теме
Спасибо, создал по примеру в статье бот записи клиентов на приём и магазин - zapisalkabot. Сейчас интегрирую с 1С.
10. John_d 6061 25.06.21 15:15 Сейчас в теме
(9) Ваш комментарий ответ на (8)
11. palmary 31.07.21 20:48 Сейчас в теме
Отличная статья, супер!
Но вот очень хочется узнать, а можно ли ответные сообщения отправлять в виде html

Например:
ЖЕЛАЕТЕ СДЕЛАТЬ НОВЫЙ ЗАКАЗ
Отлично!
12. user1644791 10.08.21 23:33 Сейчас в теме
(11) Можно. Но не полный HTML, а лишь его небольшая часть парсится.
https://core.telegram.org/bots/api
13. пользователь 22.09.22 07:04
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация