Пятница, 13 августа 2021 20:39

Пишем бота для обратной связи с сайта. Часть 3. Форматирование сообщений.

Россия
Оцените материал
(0 голосов)

В прошлой части мы рассмотрели отправку сообщения в группу с помощью Телеграм-бота.

Сегодня мы рассмотрим форматирование отправляемого текста.

Форматируем с помощью HTML

Телеграм поддерживает несколько тегов для форматирования текста:

Изменение стиля шрифта:

Жирный

<b>жирный</b>, <strong>жирный</strong>

Курсив

<i>курсив</i>, <em>курсив</em>

Подчеркивание

<u>подчеркнутый</u>, <ins> подчеркнутый </ins>

Перечеркивание

<s>перечеркнутый</s>, <strike> перечеркнутый </strike>, <del> перечеркнутый </del>

Добавим в файл send.php код:

$r = "<b>жирный</b>, <strong>жирный</strong>\n\n";
$r .= "<i>курсив</i>, <em>курсив</em>\n\n";
$r .= "<u>подчеркнутый</u>, <ins> подчеркнутый </ins>\n\n";
$r .= "<s>перечеркнутый</s>, <strike> перечеркнутый </strike>, <del> перечеркнутый </del>";

$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

Результат будет таким:

2021-08-13_20-09-59.png

Обратите внимание, мы добавили:

'parse_mode' => "html"

Также вы можете вставить ссылку на сайт: 

$r = 'Это <a href="http://blog.altuninvv.ru">ссылка</a> в середине строки';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

2021-08-13_20-14-01.png

Ссылка на пользователя или бота:

$r = 'Это ссылка на <a href="tg://user?id=1937500457">нашего бота</a>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

 2021-08-13_20-17-43.png

 Также существует возможность вставить пре форматированный текст.

Внутри строки

$r = 'Это <code> сообщение шрифтом похожим на Courier New</code> внутри строки.';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

2021-08-13_20-19-51.png

Блоком

$r = '<pre>Это сообщение-блок шрифтом похожим на Courier New </pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

2021-08-13_20-20-24.png 

 Так же вы можете отформатировать программный код на заданном языке программирования:

$r = '<pre><code class="language-php">';
$r .= "include('vendor/autoload.php');\n\n";

$r .= '$token = "1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";'."\n\n";

$r .= 'use Telegram\Bot\Api;'."\n";;
$r .= '$telegram = new Api($token);'."\n\n";;

$r .= '$result = $telegram->getWebhookUpdates();'."\n\n";;
$r .= '</code></pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

 

2021-08-13_20-27-10.png

У нас получился такой вот файл send.php

<?php
include('vendor/autoload.php');

$token = "1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

use Telegram\Bot\Api;

$telegram = new Api($token);
$result = $telegram->getWebhookUpdates();

$_GET   = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);

$text = null;
$chat_id = -517371153;

$r = "<b>жирный</b>, <strong>жирный</strong>\n\n";
$r .= "<i>курсив</i>, <em>курсив</em>\n\n";
$r .= "<u>подчеркнутый</u>, <ins> подчеркнутый </ins>\n\n";
$r .= "<s>перечеркнутый</s>, <strike> перечеркнутый </strike>, <del> перечеркнутый </del>";

$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

$r = 'Это <a href="http://blog.altuninvv.ru">ссылка</a> в середине строки';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

$r = 'Это ссылка на <a href="tg://user?id=1937500457">нашего бота</a>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

$r = 'Это <code> сообщение шрифтом похожим на Courier New</code> внутри строки.';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

$r = '<pre>Это сообщение-блок шрифтом похожим на Courier New </pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

$r = '<pre><code class="language-php">';
$r .= "include('vendor/autoload.php');\n\n";

$r .= '$token = "1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";'."\n\n";

$r .= 'use Telegram\Bot\Api;'."\n";;
$r .= '$telegram = new Api($token);'."\n\n";;

$r .= '$result = $telegram->getWebhookUpdates();'."\n\n";;
$r .= '</code></pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);

Заключение 

Сегодня мы рассмотрели форматирование текста, отправляемого с помощью Телеграм-бота, рассматривать Markdown я думаю смысла нет, HTML предоставляет нам весь необходимый функционал!

Было рассмотрено:

- форматирование начертания шрифта – жирный, курсив, подчеркивание, перечеркивание.

- создание ссылок на сайты и на ботов.

- форматирование с помощью <pre>

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

Прочитано 293 раз Последнее изменение Пятница, 13 августа 2021 20:53