# Работа со ссылками

## Ссылки с уведомлением о клике <a href="#dlya-raboty-s-ssylkami" id="dlya-raboty-s-ssylkami"></a>

proxy() | proxy\_date() | proxy\_timeout()

&#x20;<mark style="color:красный;">**ЛЕГЕНДА:**</mark>

<mark style="color:красный;">**!**</mark> - Обязательные параметры

**proxy(lnk, one-shot)** - генерирует ссылку с уведомлением о клике. Функция принимает следующие параметры:\ <mark style="color:красный;">!</mark> **ссылка** -ссылка \
**one-shot** -индикатор одноразового использования ссылки. Просто передайте значение 1.

**proxy\_date(lnk, date, time)** - генерирует ссылку с уведомлением о клике и указанным временем истечения. Функция принимает следующие параметры:\ <mark style="color:красный;">!</mark> **ссылка** - ссылка\ <mark style="color:красный;">!</mark> **date** - дата истечения ссылки \ <mark style="color:красный;">!</mark> **time** - время истечения ссылки\
**one-shot** - индикатор одноразового использования ссылки. Просто передайте 1.

**proxy\_timeout(lnk, minutes, one-shot)** - генерирует ссылку с уведомлением о клике и заданным таймером доступа. Функция принимает следующие параметры:\ <mark style="color:красный;">!</mark> **ссылка** - ссылка\ <mark style="color:красный;">!</mark> **minutes** - количество минут, в течение которых ссылка остается активной.\
**one-shot** - индикатор одноразового использования ссылки. Просто передайте 1.

<details>

<summary>Пример</summary>

Давайте разберем простой пример:

<div data-with-frame="true"><figure><img src="/files/cbdf354b9d471c46e9d1d2028d2a0f5e5e8061d0" alt=""><figcaption></figcaption></figure></div>

Мы создали две proxy-ссылки и вставили их в кнопки и текст сообщения. Поскольку мы тестируем в Telegram, это хорошая возможность вспомнить, как правильно форматировать ссылки с помощью Markdown. Для обработки специальных символов мы использовали функцию tg\_escape().

Вот как их видит клиент, например, в Telegram:

<div data-with-frame="true"><figure><img src="/files/eed723881b1cac7f7e514f2209c25a2cb3f3b05f" alt="" width="188"><figcaption></figcaption></figure></div>

Когда клиент нажимает на ссылку, мы получаем callback:

<div data-with-frame="true"><figure><img src="/files/e94e287e81d8273850921c5812960e7c49d7be8c" alt="" width="563"><figcaption></figcaption></figure></div>

Давайте настроим ответ на это событие:

<div data-with-frame="true"><figure><img src="/files/699afdf5be0994d4346aa52b990478ee87d7e6cd" alt="" width="563"><figcaption></figcaption></figure></div>

Теперь протестируем функции удаления ссылок:

<div data-with-frame="true"><figure><img src="/files/ff7fbdeae2bdf399c48e09176245f98e759b0e4b" alt="" width="375"><figcaption></figcaption></figure></div>

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

Давайте удалим ссылку с ограничением по времени:

<div data-with-frame="true"><figure><img src="/files/ff7fbdeae2bdf399c48e09176245f98e759b0e4b" alt="" width="375"><figcaption></figcaption></figure></div>

После выполнения функции в карточке клиента не остается proxy-ссылок, и любая попытка перейти по ссылке возвращает ту же ошибку.

</details>

<details>

<summary>Пример кода для копирования</summary>

Пример кода для поля «Сообщение» (не забудьте включить **Markdown** если вы работаете с Telegram):

```
*Тестирование ссылок:*
[Нажмите](#{link3})
```

или протестируйте, используя следующий формат вывода:

<pre><code><strong>Тестирование ссылок:
</strong>#{link2}
</code></pre>

Пример кода в поле «Калькулятор»:&#x20;

```
link1=proxy('https://mavibot.ai/', 1) 
link2=short_date('https://mavibot.ai/#tariff', '11.06.2025', '2pm') 
link3=tg_escape(link2)
```

</details>

{% hint style="info" %}
Когда клиент нажимает на proxy-ссылку, вы получите callback в виде **link\_was\_pressed** . Это позволяет настроить реакцию на нажатие по ссылке.

Для этого введите полученный callback в поле «Условие» и установите тип совпадения Exact Match.
{% endhint %}

## Сокращение ссылок

short() | short\_date() | short\_timeout()

&#x20;<mark style="color:красный;">**ЛЕГЕНДА:**</mark>

<mark style="color:красный;">**!**</mark> - Обязательные параметры

**short(lnk, one-shot)** - генерирует ссылку без уведомления о клике. Функция принимает следующие параметры:\ <mark style="color:красный;">!</mark> **ссылка** -ссылка \
**one-shot** -индикатор одноразового использования ссылки. Просто передайте значение 1.

**short\_date(lnk, date, time)** - генерирует ссылку без уведомления о клике и с указанным временем истечения. Функция принимает следующие параметры:\ <mark style="color:красный;">!</mark> **ссылка** - ссылка\ <mark style="color:красный;">!</mark> **date** - дата истечения ссылки \ <mark style="color:красный;">!</mark> **time** - время истечения ссылки\
**one-shot** - индикатор одноразового использования ссылки. Просто передайте 1.

**short\_timeout(lnk, minutes, one-shot)** - генерирует ссылку без уведомления о клике и с заданным таймером доступа. Функция принимает следующие параметры:\ <mark style="color:красный;">!</mark> **ссылка** - ссылка\ <mark style="color:красный;">!</mark> **minutes** - количество минут, в течение которых ссылка остается активной.\
**one-shot** - индикатор одноразового использования ссылки. Просто передайте 1.

## **Удаление ссылок**

remove\_links() | remove\_one\_time\_links()| remove\_timer\_links()

<mark style="color:красный;">**ЛЕГЕНДА:**</mark>

<mark style="color:красный;">**!**</mark> - Обязательные параметры

**remove\_links()** - деактивация всех сокращенных ссылок, отправленных клиенту

\
**remove\_one\_time\_links()** - деактивация всех одноразовых ссылок, отправленных клиенту<br>

**remove\_timer\_links()** - деактивация всех ссылок с ограничением по времени, отправленных клиенту

## Ссылка на квиз в Telegram-боте

quiz\_link\_timeout() | quiz\_link\_date() | quiz\_link()

{% hint style="warning" %}
Обратите внимание!

Срок действия ссылки ограничен 21 днем, поэтому ее нужно обновлять!
{% endhint %}

Чтобы включить отображение квиза в Telegram, необходимо:

1\. Скопировать ID страницы сайта. Для этого перейдите в раздел «Сайты» и выберите нужный сайт:

<div data-with-frame="true"><figure><img src="/files/54e862b5488de588fc930aa5d588a716452e89cb" alt="" width="563"><figcaption></figcaption></figure></div>

Далее в тексте мы будем использовать **mini\_landing\_page\_id** в качестве имени переменной.

2\. В поле «Калькулятор» используйте одну из следующих функций:

<mark style="color:красный;">**ЛЕГЕНДА:**</mark>

<mark style="color:красный;">**!**</mark> - Обязательные параметры

**quiz\_link\_timeout(mini\_landing\_page\_id, minutes)  -** генерирует ссылку с ограничением срока действия, заданным в минутах

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;mini\_landing\_page\_id** - ID страницы сайта\
**minutes -** время жизни ссылки в минутах (тип: число)

**quiz\_link\_date(mini\_landing\_page\_id, date, time) -** генерирует ссылку с истечением срока действия в определенную дату и время

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;mini\_landing\_page\_id** - ID страницы сайта\
**date** - дата активации ссылки (формат: dd.mm.yyyy)\
**time** - время активации ссылки (формат: hh:mm)

&#x20;**quiz\_link(mini\_landing\_page\_id)** - генерирует ссылку без ограничения по времени

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;mini\_landing\_page\_id** - ID страницы сайта

<details>

<summary>Пример</summary>

<div data-with-frame="true"><figure><img src="/files/f0c33fdfe86eb9c5062af1ad146e518a12ce123f" alt="" width="563"><figcaption></figcaption></figure></div>

3\. Создайте **Telegram Web App** кнопку и укажите имя переменной в фигурных скобках с символом решетки.

<div data-with-frame="true"><figure><img src="/files/cdbf52a30a703d54f175cedbd4ade958484a3d4e" alt="" width="375"><figcaption></figcaption></figure></div>

<mark style="color:красный;">**Важно!**</mark> \
Убедитесь, что значение переменной правильно сохранено в расширенных настройках.

<div data-with-frame="true"><figure><img src="/files/a017ddf95c8645acd1ba4875880ed68338042e6d" alt="" width="563"><figcaption></figcaption></figure></div>

Если вы используете **quiz\_link\_timeout** для перенаправления клиента на страницу сайта, вы можете использовать переменные клиента в заголовке и описании страницы. Например, если у клиента есть переменная **name** со значением «John», а в описании страницы указано **"Hi #{name}, how are you?"**, на выходе будет "Hi John, how are you?". Однако если у клиента нет этой переменной, значение будет взято из глобальных переменных проекта.

{% hint style="warning" %}
**Примечание!** Будьте осторожны при использовании ссылок без ограничения по времени. Если ссылкой поделятся с кем-то еще и этот человек пройдет квиз, результаты будут записаны за клиентом, для которого ссылка изначально была сгенерирована.
{% endhint %}

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/chatbot/functions/kalkulyator/links.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
