# QR-код и штрихкод: генерация и распознавание

## Генерация QR-кода

Чтобы сгенерировать код, вам нужно использовать функцию <https://store.mavibot.ai/function/qrcode\\_generator&#x20>;

#### Параметры:&#x20;

**text\_for\_qr** - текст, который нужно закодировать \
**api\_key** - ключ доступа API из настроек проекта

![Вы можете сгенерировать код в настройках проекта](https://lh6.googleusercontent.com/G3P9JaFTZGHPGvVwzzehQy0mdgSHib6jodk5ABNL426isLQtkDmfduUrAmufT2ExI9ecJXPlTGdhywYGP5X6oGxTTu_QbsqTIE1A9RE4Qr5kVQIpkR8O3mL0-NTKuasuf2o73Kga_LD6s_hc7w)

{% hint style="info" %}
Замените #{api\_key} на токен из настроек
{% endhint %}

#### Пример:

В поле «URL request» вставьте: <https://store.mavibot.ai/function/qrcode\\_generator>

В поле «Stored values» вставьте переменные, которые хотите сохранить (нужный URL находится в *qr\_image\_url*):

*status->status;*&#x20;

*qr\_image\_url->qr\_image\_url*

В «JSON parameters» введите

*{"text\_for\_qr":"Текст для кодирования","api\_key":"8629fe13ba9efebefd27a7afd701767f"}*

<figure><img src="/files/aae10660709a7e6f62dd21aa3dcbfbf2303a9e3d" alt="" width="563"><figcaption></figcaption></figure>

Функция возвращает json с параметрами *status* и *qr\_image\_url*

![Полученный вами QR-код](https://lh6.googleusercontent.com/eSuVmN8FWyY6t7zXmyghnfXLbSy4S5u_Di4oryW3beBhQNZVXLXMPdve7wpx3fvqmbvYAL8J3XWn4gNff9R5pVFp04OjhgOqfJnS-kbC_kZnCV6iPO2JlJeL11TYUJ-mRij7eWVllrLlGeRZsA)

## Генерация штрих-кода

Чтобы сгенерировать код, вам нужно использовать функцию <https://store.mavibot.ai/function/barcode\\_generator&#x20>;

#### Параметры:&#x20;

**text\_for\_qr** - текст, который нужно закодировать \
**api\_key** - ключ доступа API из настроек проекта

![Вы можете сгенерировать ключ доступа API в настройках проекта](https://lh5.googleusercontent.com/cWMoOIdWMMRt6-EDnJvQXFRSsEZaTJNUnXZwcVBrBUmK19nZ_coUel3BXdrxT1sBn6L5qitVUu1-xbYuks6qsC8mxsEUGJ1u6ctNoYkFQaoLRLO4X32XupBFtVDxKuMSIY6G-Wsj_VcMqVrZPA)

**class** - класс кода, который нужно сгенерировать. По умолчанию это ea13. Может принимать такие значения: *'code39', 'code128', 'ean', 'ean13', 'ean8', 'gs1', 'gtin', 'isbn', 'isbn10', 'isbn13', 'issn', 'jan', 'pzn', 'upc', 'upca'*

**without\_text** - (необязательный параметр) если вы передадите любое значение, штрих-код будет отображаться без текста, как показано на изображении ниже.

![](https://lh5.googleusercontent.com/VXAHILxb5iktDtp4u8t6DzuQ3mfCWi-UX-XuPQ_cuSd9lvQTMEMgrcH8q7ZuqnJjRsHT5czWg_ra1RGxAVSm7OJe3nQeSI5Yu5zrvSQSxBBNB6wR-zzfuy9XEVRxTBlyv41nvKk8aaxt0fUJrQ)

{% hint style="info" %}
Замените #{api\_key} на токен из настроек
{% endhint %}

Пример: *{"text":"#{barcode}","api\_key":"#{api\_key}", "class": "ean13"}*&#x20;

Функция возвращает json с параметрами *status* и *qr\_image\_url* если успешно и *error\_message* если неуспешно

![](https://lh5.googleusercontent.com/d5iQRmdgfMrKI5_lnMzriTnyMcWm_slw4Mj5kArjxkOcGJzm5OIlRflLzqrwOe8OUdwyVl12fHC5yWQAs26g6cWuMTJoreO3cIE4HBFbBKrgZvrykg8onW4xZBIMaBGtUkhUbvXmVQLDJ-MaJw)

{% hint style="info" %}
Текст примера хранится в переменной barcode, а переменная image\_url используется для отправки его в виде изображения.
{% endhint %}

![Пример запроса без текста](https://lh6.googleusercontent.com/LOJir5XWjFLkuValhnA6WDmsDIDfXS_RZ-dtSuuN5ZJBrnTdSPmXU1SqtVcKab6yEpsLi-ZsuIRQhjbZuM3XJt9HuGf7bd_stOygSXYLPh2FJFoxEONy9ZZJOmR_R1X-nsHBdFk47_FFo_lFpA)

## Распознавание штрих-кода по изображению

Это можно использовать для создания бота, который сканирует коды товаров. Полезная особенность заключается в том, что он также может сканировать QR-коды.

Адрес функции, которая распознает штрих-код на изображении: <https://store.mavibot.ai/function/cv2barcode&#x20>;

Чтобы отсканировать изображение, вам нужно отправить эти параметры из блока:

*{"photo":"ссылка на штрих-код/QR-код или переменная со ссылкой","api\_key":"ключ доступа API из настроек"}*

Например, чтобы отправить изображение на сканирование, вам нужно передать эти параметры:

![](https://lh6.googleusercontent.com/xbJz5HRo4PX_phHU5OW0j9GGANrH6sconYSdOwIW7iE-BtJwYibjv3DMZ0-UqebJaZ54TrCxH2sCFxcF3mEMEQFqdWDj4OHIf9_D5lmKn47Ye3rQ7cd6wZO6bPFfTm6OIbe90qUFBC_CYPCPgA)

В стрелке в поле «User enters data» введите переменную #{attachments}.

Пример кода:

`{"photo":"#{attachments}","api_key":"8629fe13ba9efebefd27a7afd701767f"}`&#x20;

`photo` — это ссылка на изображение штрих-кода; в нашем случае это переменная, которая содержит ссылку на изображение, отправленное боту.

Следующий параметр — **api\_key** - ключ доступа API из настроек проекта

![](https://lh6.googleusercontent.com/acBPr_Z1ewC3iC32xGYyy-l1LItVnkfdtIByxUYCbujBANi7KTfcce9mnBMl9jA4foxKv6Z75dp7fCiNBVFOKVE60EFOnhdrh2wH_eEDesvWQTO-mDYVUXCxeZTHoLv4p8RHhrr0qhhXnMmOqQ)

Функция работает так:

Клиент отправляет изображение штрих-кода, функция сканирует его и, если успешно, возвращает номер штрих-кода со статусом операции, установленным в «ok».

barcode -> "4500000000567" status -> "ok"

Статус сканирования может быть таким:

* **ok** — штрих-код распознан
* **штрих-код не распознан** — как следует из названия, штрих-код не удалось распознать
* **ошибка чтения изображения** — произошла ошибка при чтении изображения
* **ошибка подписки** — эта функция недоступна в вашем текущем тарифном плане

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

Например, если условие стрелки проверяет, равно ли status значению «штрих-код не распознан», вы можете показать сообщение «Код не был распознан, попробуйте еще раз» и попросить клиента отправить фотографию еще раз.


---

# 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/osobye-vozmozhnosti/qr-kod-i-shtrikhkod-generaciya-i-raspoznavanie.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.
