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 на сайте.

См. также

Конструктор ботов Телеграм, редакция 2

Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С.

15000 руб.

18.06.2021    60835    296    269    

351

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    34464    86    161    

182

Платформа интеграции 1С с чат-ботами (Telegram, Viber, WhatsApp, Instagram, Skype, ICQ, Facebook, ВКонтакте, Одноклассники, Яндекс.Алиса, Verbox, Jivochat, Avito)

Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Мощный модуль для интеграции 1С с чат-ботами: Telegram, Viber, WhatsApp, WhatsApp Business, Instagram, ICQ, Facebook, Vkontakte, Skype, Одноклассники, Яндекс.Алиса, Avito а так же виджеты чата для сайтов: Verbox, Jivochat. Это универсальное и эффективное решение с большими возможностями, простым интерфейсом, наличием визуального конструктора, базовыми сценариями поведения из коробки, позволяющий запустить чат-ботов в течении 1-го дня.

65000 руб.

08.10.2019    57872    32    0    

152

Легкий документооборот (+чат-бот для Telegram)

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

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

14900 руб.

15.11.2018    28333    28    48    

60

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

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

7788 руб.

07.04.2014    84421    43    193    

129

Личный кабинет сотрудника для 1С:Документооборот 2.1 в Telegram

Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Сделайте взаимодействие сотрудников компании быстрым и удобным. В Личном кабинете в Телеграм сотрудники могут получать и выполнять задачи используя популярный мессенджер

11520 руб.

29.12.2022    6912    5    11    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maksa2005 536 02.03.21 10:12 Сейчас в теме
Вот как это в 1с реализовать с учет истории вопросов и ответов.
2. G13ma 02.03.21 10:59 Сейчас в теме
(1) а в чем собственно проблема сделайте веб сервис опубликуйте и будет тоже самое
4. maksa2005 536 02.03.21 11:26 Сейчас в теме
(2)как бы я реализовал это давным давно. просто суть немного другая по ответу и вопросу
3. G13ma 02.03.21 11:00 Сейчас в теме
(1) ну а историю храните с регистре сведений
5. maksa2005 536 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 82 12.03.21 06:59 Сейчас в теме
Всё это здорово, но лишь один вопрос мне не даёт покоя: каким боком данная статься относится к инфостарту? Вот если бы веб-сервис на 1с для telegram-бота был реализован, и о нём статья была, то да. Но так...
9. Юстас 24 25.06.21 15:10 Сейчас в теме
Спасибо, создал по примеру в статье бот записи клиентов на приём и магазин - zapisalkabot. Сейчас интегрирую с 1С.
10. John_d 5440 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
Сообщение было скрыто модератором.
...
Оставьте свое сообщение