Перейти к основному содержанию
GetQR API находится в бета-версии и доступен для отдельных рабочих пространств. До общего релиза детали могут измениться.
Управляйте тем, когда QR-код ведёт на адрес назначения, сколько раз его можно отсканировать, запрашивает ли он пароль и приостановлен или удалён ли он.

Перед началом

  • Роль. Для настройки правил, приостановки, возобновления и удаления нужен доступ на запись к QR-кодам в рабочем пространстве. См. Аутентификация.
  • Подписка. Каждому запросу к API, включая эти, нужна активная подписка владельца рабочего пространства.

Объект access

Передайте объект access, когда создаёте или обновляете QR-код:
Пропущенные поля не меняются. Чтобы удалить правило, передайте null. Частичный объект access никогда не сбрасывает правила, которые в нём не упомянуты.
Правила доступа передаются в access. Передача activeAt, pauseAt, scanLimit, password или passwordProtected в link возвращает 422.

Расписание начала и окончания

activeAt и pauseAt независимы: задайте одно из них или оба. Оба принимают дату и время в ISO 8601 с Z или смещением от UTC.
Чтобы удалить расписание, передайте null. QR-код сразу станет активным, а дата окончания будет удалена:

Лимит сканирований

Ограничьте общее число сканирований. После этого QR-код перестаёт вести на адрес назначения:
Счётчик сканирований за всё время работает всегда, независимо от того, задан ли лимит. Поэтому изменение лимита предсказуемо:
  • Повышение лимита добавляет ровно столько сканирований, сколько составляет разница между новым лимитом и общим числом сканирований.
  • Понижение лимита ниже текущего общего числа сразу блокирует QR-код.
  • Лимит, заданный позже, учитывает сканирования, сделанные, пока лимита не было.
scanLimit должен быть положительным целым числом не больше 2147483647. Для неограниченного числа передайте null.

Защита паролем

Пароль задаётся через тот же объект access. Когда вы отключаете защиту, пароль сохраняется, поэтому её можно снова включить, не передавая пароль повторно.
1

Задайте или измените пароль

Это также включает защиту.
2

Отключите защиту

Пароль сохраняется.
3

Снова включите защиту

Передавать пароль повторно не нужно. Это работает, только если пароль уже задан. Иначе запрос получит 422.
  • При создании. Чтобы включить защиту, передайте password. Один passwordProtected ни на что не влияет, пока пароля нет.
  • Удаление пароля. Передайте "password": null. Защита тоже отключится.
  • Чтение. Ответы никогда не возвращают пароль, только access.passwordProtected.

Приостановка, возобновление и удаление

Приостановка и возобновление — это отдельные эндпоинты, а не поля access, потому что они действуют сразу, а не по расписанию. Приостановка и возобновление не принимают тело запроса и возвращают обновлённый QR-код:
Состояние паузы также можно задать через PUT /api/v1/qrs/{qrId} с { "archived": true } или через archived в PATCH. См. Установка состояния паузы. Удаление стирает QR-код вместе с его короткой ссылкой:
Удаление нельзя отменить. Короткая ссылка перестаёт работать, поэтому напечатанные коды тоже перестают работать. Если QR-код может снова понадобиться, лучше приостановите его.

Когда изменения вступают в силу

  • Следующее сканирование. Правила проверяются при сканировании, поэтому изменение действует со следующего сканирования, а не задним числом.
  • Страница паузы. QR-код, заблокированный расписанием, лимитом сканирований или паузой, показывает страницу паузы. Перенаправления не происходит.
  • Пароль. Посетители, которые уже ввели пароль, сохраняют доступ, пока пароль не изменится или пока защиту не выключат и снова не включат.
  • Часы. Расписания используют часы сервера в UTC, а не местное время посетителя.
  • Правила действуют вместе. QR-код ведёт на адрес назначения, только если он не приостановлен, находится в пределах расписания и не превысил лимит сканирований.

Частые проблемы

У QR-кода ещё нет пароля. Передайте password вместо passwordProtected: true.
Продолжает действовать расписание или лимит сканирований. Проверьте access.activeAt, access.pauseAt и access.scanLimit в QR-коде и сравните scans с лимитом.
link.expiresAt в этом API недоступен. Используйте вместо него access.pauseAt.

Что дальше

QR-коды

Данные QR-кода по типам