GetQR API находится в бета-версии и доступен для отдельных рабочих пространств. До общего релиза детали могут измениться.
Перед началом
- Роль. Для настройки правил, приостановки, возобновления и удаления нужен доступ на запись к QR-кодам в рабочем пространстве. См. Аутентификация.
- Подписка. Каждому запросу к API, включая эти, нужна активная подписка владельца рабочего пространства.
Объект access
Передайте объектaccess, когда создаёте или обновляете QR-код:
Пропущенные поля не меняются. Чтобы удалить правило, передайте
null. Частичный объект access никогда не сбрасывает правила, которые в нём не упомянуты.
Расписание начала и окончания
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-код, заблокированный расписанием, лимитом сканирований или паузой, показывает страницу паузы. Перенаправления не происходит.
- Пароль. Посетители, которые уже ввели пароль, сохраняют доступ, пока пароль не изменится или пока защиту не выключат и снова не включат.
- Часы. Расписания используют часы сервера в UTC, а не местное время посетителя.
- Правила действуют вместе. QR-код ведёт на адрес назначения, только если он не приостановлен, находится в пределах расписания и не превысил лимит сканирований.
Частые проблемы
422 при передаче правила в link
422 при передаче правила в link
Передавайте правило в
access, а не в link.422 при включении защиты паролем
422 при включении защиты паролем
У QR-кода ещё нет пароля. Передайте
password вместо passwordProtected: true.После возобновления QR-код всё ещё показывает страницу паузы
После возобновления QR-код всё ещё показывает страницу паузы
Продолжает действовать расписание или лимит сканирований. Проверьте
access.activeAt, access.pauseAt и access.scanLimit в QR-коде и сравните scans с лимитом.Мне нужно, чтобы ссылка истекала
Мне нужно, чтобы ссылка истекала
link.expiresAt в этом API недоступен. Используйте вместо него access.pauseAt.