Skip to content

Войти через ReMeet (OAuth) ​

Когда вашему серверу нужно действовать от имени человека — читать его встречи, создавать новые, — он просит доступ по OAuth 2.0 (код авторизации + PKCE S256). Человек видит окно согласия ReMeet со списком того, что сможет приложение, и нажимает Разрешить. Отозвать доступ можно в любой момент: Настройки → Подключённые приложения.

Нужно ли вам это?

Приложению без сервера — нет. Чтобы узнать, кто открыл приложение во встрече, хватает контекст-токена. OAuth нужен, чтобы вызывать REST API от имени человека.

Получите ключи ​

В кабинете разработчика: ваше приложение → API и вебхуки → Создать ключи. Вы получите client_id и client_secret. Секрет показывается один раз — храните его только на сервере. Потеряли — нажмите Новый секрет клиента (старый сразу перестанет работать).

Добавьте адреса возврата вашего сервера (https; для разработки можно http://localhost).

Права (scopes) ​

ПравоЧто видит человек
profileВидеть ваше имя, язык и часовой пояс
emailВидеть вашу почту
meetings.readВидеть ваши встречи: названия, время и ссылки
meetings.writeСоздавать встречи от вашего имени

Без scope вы получите profile. Просите только то, чем пользуетесь.

Схема с вашего сайта ​

  1. Отправьте человека на адрес авторизации:

    https://remeet.video/oauth/authorize
      ?client_id=ВАШ_CLIENT_ID
      &redirect_uri=https://your-site.example/oauth/callback
      &response_type=code
      &scope=profile meetings.read
      &state=СЛУЧАЙНАЯ_СТРОКА
      &code_challenge=BASE64URL(SHA256(code_verifier))
      &code_challenge_method=S256
  2. После Разрешить ReMeet вернёт его на redirect_uri?code=…&state=…. Проверьте, что state ваш.

  3. Сервер меняет код на токены:

    bash
    curl -X POST https://remeet.video/oauth/token \
      -d grant_type=authorization_code \
      -d client_id=ВАШ_CLIENT_ID \
      -d client_secret=ВАШ_CLIENT_SECRET \
      -d redirect_uri=https://your-site.example/oauth/callback \
      -d code=КОД_ИЗ_ШАГА_2 \
      -d code_verifier=ИСХОДНЫЙ_VERIFIER
    json
    { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJ…", "refresh_token": "def5…" }
  4. Вызывайте REST API с Authorization: Bearer <access_token>.

Access-токен живёт 1 час, refresh-токен — 30 дней. Обновление:

bash
curl -X POST https://remeet.video/oauth/token \
  -d grant_type=refresh_token -d refresh_token=… \
  -d client_id=… -d client_secret=… -d scope="profile meetings.read"

Если человек уже разрешал те же права, ReMeet не спрашивает снова и сразу возвращает код.

Схема изнутри встречи: app.authorize() ​

Во встрече приложение может попросить доступ, не выходя из звонка, — как в Zoom и Discord. ReMeet открывает окно согласия поверх встречи и отдаёт код вашей рамке:

js
const app = await ReMeet.ready();

document.getElementById('connect').onclick = async () => {
  const verifier = randomString(64);                 // сохраните для своего сервера
  const challenge = await sha256base64url(verifier);

  try {
    const { code, redirect_uri } = await app.authorize({
      scopes: ['profile', 'meetings.read'],
      codeChallenge: challenge,
    });
    // Сервер меняет код: grant_type=authorization_code, redirect_uri, code_verifier, client_secret.
    await fetch('https://api.your-site.example/remeet/connect', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ code, redirect_uri, verifier, contextToken: app.contextToken }),
    });
  } catch (error) {
    if (error.code === 401) app.notify('Без доступа приложение работает в простом режиме');
  }
};
  • Вызывайте authorize() сразу по нажатию в приложении, иначе браузер заблокирует окно (ошибка 409).
  • redirect_uri всегда https://remeet.video/oauth/sdk-callback — он разрешён каждому приложению автоматически; передайте его в обмен кода как есть.
  • Ошибки: 401 — человек не разрешил; 410 — закрыл окно; 404 — у приложения ещё нет ключей.
  • В симуляторе authorize() возвращает ненастоящий код без окна.

Метаданные сервера ​

Стандартные метаданные OAuth (RFC 8414) для библиотек, которые настраиваются сами: remeet.video/.well-known/oauth-authorization-server.

Кто может войти ​

Опубликованное приложение — любой. Приложение на тестировании — только вы и его тестировщики; для остальных адрес авторизации отвечает «не найдено».

ReMeet Apps SDK v0 · бета. Файл SDK v0.js — под лицензией MIT.