Skip to Content

Scope’ы описывают, что может делать access-токен OAuth. Запрашивайте только нужные — пользователи видят список на consent-экране и охотнее авторизуют короткий список.

Неявный scope

ScopeВыдаётся автоматическиОписание
user.readдаЧтение id, имени, email и аватара авторизованного пользователя + текущий workspace. Используется /oauth/userinfo.

user.read не нужно включать в scope — он выдаётся всегда.

Доступные scope’ы

Для каждого ресурса — .read (только чтение) или .write (чтение + запись). Write-scope всегда включает соответствующее read-разрешение.

ScopeДаёт
links.readПолучение/поиск списков и метаданных коротких ссылок
links.writeСоздание, обновление, архивирование и удаление ссылок

Tags

ScopeДаёт
tags.readСписок и получение тегов
tags.writeСоздание, переименование и удаление тегов

Folders

ScopeДаёт
folders.readСписок папок и их настроек
folders.writeСоздание, обновление и удаление папок

Domains

ScopeДаёт
domains.readСписок доменов и их DNS/SSL-статус
domains.writeДобавление, верификация, настройка и удаление кастомных доменов

Analytics

ScopeДаёт
analytics.readЧтение агрегированной аналитики (клики, лиды, продажи, топ-страны/устройства и т.д.) и потока событий

analytics.write не существует — аналитика производится платформой, а не пишется через API.

Webhooks

ScopeДаёт
webhooks.readСписок вебхуков и их подписок на события
webhooks.writeСоздание, обновление, ротация и удаление вебхуков

Выбор scope’ов

Несколько рекомендаций:

  • Read-only интеграции (Notion sidebar, dashboard widget) — только *.read scope’ы.
  • Утилиты создания ссылок (расширение для браузера, Slack-команда /shorten) — обычно достаточно links.write.
  • Полная замена платформы (кастомный дашборд) — комбинируйте links.write, analytics.read, tags.write, folders.write, domains.read.
  • Мастера настройки вебхуков — только webhooks.write.
⚠️

Избегайте domains.write, если только реально не управляете кастомными доменами пользователей — он позволяет удалять домены, что может сломать ссылки всего workspace.

Проверка выданных scope’ов

Ответ token-эндпоинта содержит фактически выданные пользователем scope’ы (может быть подмножеством запрошенного):

{ "access_token": "dub_access_token_...", "expires_in": 7200, "refresh_token": "...", "scope": "links.read links.write analytics.read" }

Всегда проверяйте scope перед вызовом API — не предполагайте, что пользователь выдал всё запрошенное.

Изменение scope’ов для уже авторизовавшегося пользователя

Scope’ы фиксируются в момент авторизации. Чтобы запросить дополнительные у уже авторизованного пользователя — отправьте его снова на /oauth/authorize с новым списком scope’ов. RevRoute покажет свежий consent-экран только с новыми scope’ами и, при одобрении, выдаст токены, объединяющие старые и новые разрешения.

Персональные API-ключи

Для сравнения, workspace API-ключи имеют более широкий список scope’ов, включая write-разрешения для аналитики и настроек workspace. OAuth-приложения намеренно ограничены списком выше — если вам нужно что-то ещё, OAuth не подходящий инструмент.

Last updated on