QivoQR-код шеберханасы
QR-код жасау

Интеграциялар үшін

Бір сұрауға жауап ретінде QR-код

QR-код генерациясын сервисіңізге қосыңыз. Мазмұн мен дизайнды GET арқылы беріп, қосымша сканерлеу тексеруінсіз PNG немесе SVG алыңыз.

Тегін. Әрқашан.PNG, SVG және API — төлемсіз және жазылымсыз.

Тікелей QR-кодтар. Қайта бағыттаусыз. Мерзімі бітпейді.

GEThttps://qivo.umind.group/

Сұрау және авторизация

Кілтті X-API-Key тақырыбында беріңіз. Редактор сессиясы мен cookie қажет емес. Мысалдағы QIVO_API_KEY — кілтіңіз сақталатын клиенттің орта айнымалысы.

curl мысалы
curl --fail --show-error --get 'https://qivo.umind.group/' \
  --header "X-API-Key: $QIVO_API_KEY" \
  --data-urlencode 'data=https://umind.group' \
  --data-urlencode 'contentType=url' \
  --data-urlencode 'format=svg' \
  --data-urlencode 'shape=rounded' \
  --data-urlencode 'size=1024' \
  --output qr-code.svg

Интеграция тек URL қабылдаса, кілтті key параметрінде беріңіз:

GET URL мысалы
https://qivo.umind.group/?key=YOUR_SECRET_KEY&data=https%3A%2F%2Fumind.group&format=png&size=1024

YOUR_SECRET_KEY орнына өз кілтіңізді қойыңыз. Тақырып key параметрінен басым. Мәндерді URL үшін кодтаңыз: # → %23, + → %2B, мән ішіндегі & → %26.

HTTPS қолданып, кілтті өз серверіңізде сақтаңыз. Оны ашық JavaScript ішіне жазбаңыз. GET мекенжайы тарихта не журналда қалуы мүмкін; кілт үшін тақырыпты қолданған дұрыс.

Код мысалдары

Мысалдарды өз серверіңізде орындаңыз. Кілтті QIVO_API_KEY орта айнымалысында сақтаңыз; оны бет кодында жарияламаңыз.

qr-code.php
<?php
$key = getenv('QIVO_API_KEY');
if (!$key) throw new RuntimeException('Set QIVO_API_KEY');
$query = http_build_query([
    'data' => 'https://umind.group', 'format' => 'svg',
    'shape' => 'rounded', 'size' => 1024,
], '', '&', PHP_QUERY_RFC3986);
$curl = curl_init('https://qivo.umind.group/?' . $query);
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . $key],
    CURLOPT_TIMEOUT => 30,
]);
$image = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
if ($image === false || $status !== 200) {
    throw new RuntimeException('Qivo request failed: ' . $status);
}
file_put_contents('qr-code.svg', $image);
qr-code.mjs
import { writeFile } from 'node:fs/promises';
const key = process.env.QIVO_API_KEY;
if (!key) throw new Error('Set QIVO_API_KEY');
const url = new URL('https://qivo.umind.group/');
url.search = new URLSearchParams({
  data: 'https://umind.group', format: 'svg',
  shape: 'rounded', size: '1024'
});
const response = await fetch(url, {
  headers: { 'X-API-Key': key },
  signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`Qivo request failed: ${response.status}`);
await writeFile('qr-code.svg', Buffer.from(await response.arrayBuffer()));
qr-code.py
import os
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen

key = os.environ['QIVO_API_KEY']
query = urlencode({
    'data': 'https://umind.group', 'format': 'svg',
    'shape': 'rounded', 'size': 1024,
})
request = Request('https://qivo.umind.group/?' + query,
                  headers={'X-API-Key': key})
# urlopen raises HTTPError for unsuccessful HTTP responses.
with urlopen(request, timeout=30) as response:
    Path('qr-code.svg').write_bytes(response.read())

Дизайн параметрлері

ПараметрТүріМіндеттілігіМәндер
X-API-Key / keystringМіндетті
Құпия кілт: тақырып немесе GET параметрі
datastringtext және url үшін
text/url үшін міндетті мазмұн
contentTypestringМіндетті емес
texturlwifivcardwhatsapptelegramphoneviberemailsms
Әдепкі: text
formatstringМіндетті емес
pngsvg
Әдепкі: png
sizeintegerМіндетті емес
25651210242048
Әдепкі: 1024
shapestringМіндетті емес
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
Әдепкі: square
borderstringМіндетті емес
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
Әдепкі: square
centerstringМіндетті емес
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
Әдепкі: square
foreground / eyeColorstringМіндетті емес
#RRGGBB
Әдепкі: #192b39
backgroundstringМіндетті емес
#RRGGBB
Әдепкі: #ffffff
levelstringМіндетті емес
LMQH
Әдепкі: M
quietZoneintegerМіндетті емес
0–12 модуль
Әдепкі: 4
logostringМіндетті емес
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
Әдепкі: none
logoScaleintegerМіндетті емес
12–30
Әдепкі: 24

Логотипі бар кодқа H деңгейі автоматты түрде қолданылады. GET дайын белгілерді қолдайды; файлдар мен сыртқы логотип URL мекенжайларын жүктемейді.

Мазмұн түрлері

Өрістер contentType мәніне байланысты. URL үшін https:// не http:// толық мекенжайын, телефон үшін ел кодын беріңіз.

contentTypeМіндетті өрістерМіндетті емес өрістер
text / urldata
phone / viberphone
whatsapp / smsphonemessage
telegramtelegram
emailemailsubject, message
wifissid; wifiSecurity≠nopass → wifiPasswordwifiSecurity (WPA), wifiHidden (0)
vcardfirstName / lastNameorganization, jobTitle, phone, email, website, address
Телефон мысалы
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svg

API жауаптары

Сәтті жауап — JSON қаптамасынсыз сурет файлы. Content-Type: image/png немесе image/svg+xml. Қате JSON ретінде қайтарылады:

JSON
{"error":"Invalid API key."}
  • 200 — Сурет дайын.
  • 401 — Кілт жоқ немесе қате.
  • 405 — GET әдісі қажет.
  • 422 — Параметрлер қате немесе мазмұн жоқ.
  • 429 — Сұрау шегі асты; Retry-After: 60.
  • 503 — API қолжетімділігі бапталмаған немесе қорғаныс уақытша қолжетімсіз.
  • 500 — Генерацияның ішкі қатесі.

Шектеулер және тексеру

Әдепкі шек — бір IP үшін минутына 60 сұрау. Кодталған мазмұн — 800 байтқа дейін. PNG — 2048 × 2048 px дейін. SVG векторлық пішіндерді сақтайды.

API параметрлердің пішімін, өлшемін және контрастын тексереді, бірақ декодерді іске қоспайды. Сәндік үйлесімдер мен баспа нәтижесін камерамен тексеріңіз.

Қолжетімділік алу

API тегін және әрқашан тегін қалады. Құпия кілт сұрау үшін қысқа форманы толтырыңыз.

Үш өріс те міндетті. Өтінішті қарау және жауап беру үшін форма деректері Qivo командасына жіберіледі.