> This page is for Платформа, version Версия 4 экспериментальная.
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - Версия 4 экспериментальная: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - Предыдущая версия: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# Руководство по миграции с устаревшего API-интерфейса Frame.io на версию V4

## Введение

API-интерфейс Frame.io V4 — это переработанная версия устаревшего API, который часто называют *конечными точками V2* или *API-интерфейсом Frame.io V3*. Новая архитектура в полной мере использует возможности и функции Frame V4, сохраняя при этом всю ключевую функциональность прежней версии. В этом руководстве описываются ключевые различия между старой версией и V4 и даются пошаговые инструкции для плавной миграции.

## Контрольный список миграции

#### Аутентификация

Для учетных записей, переведенных на версию V4, которые еще не управляются через Adobe Admin Console, можно продолжать использовать устаревшие токены разработчика, управление которыми осуществляется на [сайте Frame.io Developer](/), однако потребуется добавить в свои запросы к API заголовок с ключом `x-frameio-legacy-token-auth` и значением `true`. В противном случае необходимо выполнить шаги, описанные ниже в разделе [Аутентификация](#adobe-developer-console-managed-authentication).

#### Обновление существующих вызовов API-интерфейса

Все прежние маршруты API-интерфейса необходимо сопоставить с новыми маршрутами API-интерфейса V4 и полезными нагрузками JSON. Ниже приведена довольно подробная таблица [сопоставления](#endpoint-mappings-legacy-api-to-v4), которая поможет в этом процессе.

#### Тестирование (настоятельно рекомендуется)

**Проводите тщательное тестирование.** Из-за большого количества изменений в API-интерфейсе рекомендуется использовать для тестирования учетную запись V4. Это позволит убедиться в корректной работе нового API-интерфейса.

#### Реализация отдельного входа в систему

Реализуйте отдельный метод входа в систему для версии V4, поскольку для нее используются другие URL-адреса аутентификации. URL-адрес аутентификации для V4 отличается от старого API-интерфейса, и в ответе не будут возвращаться учетные записи, еще не перешедшие на V4. Эту логику следует рассматривать как отдельную интеграцию.

> **Note**
>
> Если у вас возникли вопросы по какой-либо конечной точке, не указанной в таблице сопоставления ниже, обратитесь в нашу службу поддержки по адресу [support@frame.io](mailto:support@frame.io).

## Управление аутентификацией через Adobe Developer Console

Для учетных записей, переведенных на V4, которые управляются через [Adobe Developer Console](https://developer.adobe.com/developer-console/), необходимо использовать API-интерфейс V4 с протоколом OAuth2.0. Для этого выполните следующие шаги.

#### Создание проекта Adobe

**Создайте проект в Adobe Developer Console** и добавьте Frame.io в качестве продукта.

#### Выбор типа аутентификации

**Выполните аутентификацию.** Подробнее — в [руководстве по аутентификации](https://developer.adobe.com/frameio/guides/Authentication/). Если ваша учетная запись V4 еще не управляется через Adobe Admin Console, вы можете пропустить этот шаг. \* **Аутентификация пользователя**. Подключение к Frame выполняется с помощью идентификатора клиента и/или секретного ключа клиента и требует, чтобы пользователь вошел в систему с использованием имени пользователя и пароля. \* **Межсерверная аутентификация**. Подключение к Frame выполняется с помощью идентификатора клиента и секретного ключа клиента, но не требует участия пользователя для входа в систему через браузер.

#### Реализация аутентификации Bearer

**Аутентификация с помощью JWT Bearer**. При каждом запросе к API-интерфейсу передавайте токен аутентификации через заголовок с ключом `Authorization` и значением `Bearer<ims_access_token></ims_access_token>`.

## Сопоставление конечных точек (устаревшего API-интерфейса и V4)

> **Note**
>
> Если вы используете аутентификацию с помощью устаревшего токена разработчика, вам нужно добавить в свои запросы к API-интерфейсу заголовок с ключом x-frameio-legacy-token-auth и значением true.

Общие примечания по миграции

#### Полезная нагрузка

Полезная нагрузка в запросе и ответе может отличаться.

#### Команды → рабочие среды

Понятие «команды» в устаревшем API-интерфейсе эквивалентно понятию «рабочие среды» в V4.

#### ресур.

Понятие «ресурсы» в устаревшем API-интерфейсе теперь разделено на «файлы», «папки» и «стеки версий» в V4.

#### Разрешения

В версии V4 изменены роли и разрешения, что меняет структуру конечных точек. В V4 используются роли пользователей на уровне рабочей среды и проекта. Подробнее — в разделе [Управление разрешениями пользователей](/platform/v4/docs/guides/managing-user-permissions).

### 1. Учетные записи и информация о пользователе

| Метод   | Устаревшая конечная точка                                                                                      | Метод   | Конечная точка V4                                                                    | Примечания                                                                                  |
| ------- | -------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
| **GET** | `/v2/accounts` ([Получить учетные записи для пользователя](/platform/v2/api-reference/accounts/get-accounts))  | **GET** | `/v4/accounts` ([Список учетных записей](/platform/v4/api-reference/accounts/index)) | V4 возвращает все учетные записи, к которым у пользователя есть доступ.                     |
| **GET** | `/v2/accounts/{account_id}` ([Получить учетную запись по ID](/platform/v2/api-reference/accounts/get-account)) | Н/Д     | Н/Д                                                                                  | Информацию о конкретной учетной записи можно найти в конечной точке списка учетных записей. |
| **GET** | `/v2/me` ([Получить текущего пользователя](/platform/v2/api-reference/users/get-me))                           | **GET** | `/v4/me` ([Сведения о пользователе](/platform/v4/api-reference/users/show))          | Позволяет получить профиль текущего пользователя.                                           |
| **GET** | `/v2/accounts/{account_id}/membership`                                                                         | Н/Д     | Н/Д                                                                                  | Роли и права доступа управляются через разрешения на уровне рабочей среды и проекта.        |

### 2. Рабочие среды (заменили конечные точки команд)

| Метод    | Устаревшая конечная точка                                                                                                                          | Метод     | Конечная точка V4                                                                                                                                                                                               | Примечания                                                                                           |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **GET**  | `/v2/accounts/{account_id}/teams` ([Получить все команды в учетной записи](/platform/v2/api-reference/teams/get-teams-by-account))                 | **GET**   | `/v4/accounts/{account_id}/workspaces` ([Список рабочих сред](/platform/v4/api-reference/workspaces/index))                                                                                                     | Понятие «команды» в устаревшем API-интерфейсе → «рабочие среды» в V4.                                |
| **POST** | `/v2/accounts/{account_id}/teams` ([Создать команду для указанной учетной записи](/platform/v2/api-reference/teams/create-team))                   | **POST**  | `/v4/accounts/{account_id}/workspaces` ([Создать рабочую среду](/platform/v4/api-reference/workspaces/create))                                                                                                  | Тело аналогично (название и т. д.). В ответе возвращается объект рабочей среды, а не объект команды. |
| **GET**  | `/v2/teams/{team_id}` ([Получить команду](/platform/v2/api-reference/teams/get-team))                                                              | **GET**   | `/v4/accounts/{account_id}/workspaces/{workspace_id}` ([Показать рабочую среду](/platform/v4/api-reference/workspaces/show))                                                                                    | Идентификатор команды → идентификатор рабочей среды в V4.                                            |
| **GET**  | `/v2/teams/{team_id}/members` ([Получить участников команды](/platform/v2/api-reference/teams/get-team-members))                                   | **GET**   | `/v4/accounts/{account_id}/workspaces/{workspace_id}/users` [(Получить участников рабочей среды)](/platform/v4/api-reference/workspace-permissions/index)                                                       | Возвращает всех пользователей в рабочей среде.                                                       |
| **POST** | `/v2/teams/{team_id}/members` ([Добавить участника команды)](/platform/v2/api-reference/teams/add-team-member))                                    | **PATCH** | `/v4/accounts/{account_id}/workspaces/{workspace_id}/users/{user_id}` ([Добавить или обновить роль пользователя в рабочей среде](/platform/v4/api-reference/workspace-permissions/workspace-user-roles-update)) | Позволяет добавлять пользователей в рабочую среду или удалять их.                                    |
| **GET**  | `/v2/teams/{team_id}/membership` ([Получить сведения об участии пользователей в команде](/platform/v2/api-reference/teams/get-membership-by-team)) | Н/Д       | Н/Д                                                                                                                                                                                                             | Роли и права доступа управляются через разрешения на уровне рабочей среды и проекта.                 |

### 3. Проекты

| Метод      | Устаревшая конечная точка                                                                                                                            | Метод      | Конечная точка V4                                                                                                                                                                                  | Примечания                                                                                                                                        |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **GET**    | `/v2/teams/{team_id}/projects` ([Получить проекты по команде](/platform/v2/api-reference/projects/get-projects-by-team))                             | **GET**    | `/v4/accounts/{account_id}/workspaces/{workspace_id}/projects` ([Список проектов](/platform/v4/api-reference/projects/index))                                                                      | Необходимо указать `account_id` и `workspace_id` в V4.                                                                                            |
| **GET**    | `/v2/projects/shared`                                                                                                                                | **GET**    | `/v4/accounts/{account_id}/invited_projects` ([Список проектов с приглашением](https://next.developer.frame.io/platform/api-reference/projects/invited-projects-index))                            | Выводит список только проектов с приглашением. `/v4/accounts/{account_id}/projects` выводит список всех проектов, включая проекты с приглашением. |
| **POST**   | `/v2/teams/{team_id}/projects` ([Cоздать проект](/platform/v2/api-reference/projects/create-project))                                                | **POST**   | `/v4/accounts/{account_id}/workspaces/{workspace_id}/projects` ([Cоздать проект](/platform/v4/api-reference/projects/create))                                                                      | Тело аналогично: `{ &quot;name&quot;: &quot;MyProject&quot;, ... }`.                                                                              |
| **GET**    | `/v2/projects/{project_id}` ([Получить проект по ID](/platform/v2/api-reference/projects/get-project))                                               | **GET**    | `/v4/accounts/{account_id}/projects/{project_id}` ([Показать проект](/platform/v4/api-reference/projects/show))                                                                                    | Требуются `account_id` и `project_id`.                                                                                                            |
| **PUT**    | `/v2/projects/{project_id}` ([Обновить проект](/platform/v2/api-reference/projects/update-project))                                                  | **PATCH**  | `/v4/accounts/{account_id}/workspaces/{workspace_id}/projects/{project_id}` ([Обновить проект](/platform/v4/api-reference/projects/update))                                                        | V4 использует PATCH для частичных обновлений.                                                                                                     |
| **DELETE** | `/v2/projects/{project_id}` [(Удалить проект по ID)](/platform/v2/api-reference/projects/delete-project)                                             | **DELETE** | `/v4/accounts/{account_id}/workspaces/{workspace_id}/projects/{project_id}` [(Удалить проект)](/platform/v4/api-reference/projects/delete)                                                         | Удаляет проект.                                                                                                                                   |
| **GET**    | `/v2/projects/{project_id}/collaborators` ([Получить сведения о соавторах в проекте](/platform/v2/api-reference/projects/get-project-collaborators)) | **GET**    | `/v4/accounts/{account_id}/projects/{project_id}/users` ([Список ролей пользователей в проекте](/platform/v4/api-reference/project-permissions/index))                                             | Возвращает всех пользователей в проекте (ближайший эквивалент устаревшей конечной точки для соавторов).                                           |
| **POST**   | `/v2/projects/{project_id}/collaborators` ([Добавить соавтора в проект](/platform/v2/api-reference/projects/add-collaborator-to-project))            | **PATCH**  | `/v4/accounts/{account_id}/projects/{project_id}/users/{user_id}` ([Обновить роли пользователей для указанного проекта](/platform/v4/api-reference/project-permissions/project-user-roles-update)) | Позволяет добавлять пользователей в проект или удалять их (ближайший эквивалент устаревшей конечной точки для соавторов).                         |

### 4. Папки

| Метод      | Устаревшая конечная точка                                                                                    | Метод      | Конечная точка V4                                                                                                                      | Примечания                                                                                                                                                                                                        |
| ---------- | ------------------------------------------------------------------------------------------------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **GET**    | `/v2/assets/{asset_id}/children` ([Получить дочерние ресурсы](/platform/v2/api-reference/assets/get-assets)) | **GET**    | `/v4/accounts/{account_id}/folders/{folder_id}/children` ([Список дочерних элементов папки](/platform/v4/api-reference/folders/index)) | Если в устаревшем API ваш идентификатор `asset_id` относился к папке, то в V4 он заменен на `folder_id`.                                                                                                          |
| **POST**   | `/v2/assets/{parent_asset_id}/children` ([Создать ресурс](/platform/v2/api-reference/assets/create-asset))   | **POST**   | `/v4/accounts/{account_id}/folders/{folder_id}/folders` ([Создать папку](/platform/v4/api-reference/folders/create))                   | В устаревшем API вы использовали `&quot;type&quot;: &quot;folder&quot;`, а в V4 используется `{&quot;data&quot;: {&quot;name&quot;: &quot;Folder name&quot;}}`.                                                   |
| **GET**    | `/v2/assets/{asset_id}` ([Получить ресурс](/platform/v2/api-reference/assets/get-asset))                     | **GET**    | `/v4/accounts/{account_id}/folders/{folder_id}` ([Показать папку](/platform/v4/api-reference/folders/show))                            | В устаревшем API-интерфейсе требуется параметр "type": "folder". В API-интерфейсе V4 требуются идентификаторы `folder_id` и `account_id` в параметрах пути.                                                       |
| **PUT**    | `/v2/assets/{asset_id}` ([Обновить ресурс](/platform/v2/api-reference/assets/update-asset))                  | **PATCH**  | `/v4/accounts/{account_id}/folders/{folder_id}` ([Обновить папку](/platform/v4/api-reference/folders/update))                          | В устаревшем API `asset_id` будет идентификатором вашей папки. В API-интерфейсе V4 тело запроса — `{&quot;data&quot;: {&quot;name&quot;: &quot;New Folder Name&quot;}}`.                                          |
| **DELETE** | `/v2/assets/{asset_id}` ([Удалить ресурс](/platform/v2/api-reference/assets/delete-asset))                   | **DELETE** | `/v4/accounts/{account_id}/folders/{folder_id}` ([Удалить папку](/platform/v4/api-reference/folders/delete))                           | Удаляет папку.                                                                                                                                                                                                    |
| Н/Д        | Н/Д                                                                                                          | **GET**    | `/v4/accounts/{account_id}/folders/{folder_id}/folders` ([Список папок](/platform/v4/api-reference/folders/list))                      | Выводит список папок внутри указанной папки. (Получите идентификатор root\_folder\_id из маршрута отображения проекта, после чего сможете использовать его для вывода списка всех папок на самом верхнем уровне.) |

### 5. Стеки версий

| Метод      | Устаревшая конечная точка                                                                                          | Метод     | Конечная точка V4                                                                                                                                               | Примечания                                                                                                                                          |
| ---------- | ------------------------------------------------------------------------------------------------------------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **POST**   | `/v2/assets/{destination_folder}/copy` ([Копировать ресурс](/platform/v2/api-reference/assets/copy-asset))         | **POST**  | `/v4/accounts/{account_id}/version_stacks/{version_stack_id}/copy` ([Копировать стек версий](/platform/api-reference/version-stacks/copy))                      | В устаревшем API-интерфейсе папка назначения указывается в параметрах пути; используется со стеком версий в запросе. В V4 копируется стек версий.   |
| **POST**   | `/v2/assets/{asset_id}/version` ([Создать версию ресурса](/platform/v2/api-reference/assets/add-version-to-asset)) | **POST**  | `/v4/accounts/{account_id}/folders/{folder_id}/version_stacks` ([Создать стек версий](/platform/api-reference/version-stacks/create))                           | Создается стек версий. Требуется 2–10 идентификаторов файлов в теле запроса.                                                                        |
| **POST**   | `/v2/assets/{asset_id}/version` ([Создать версию ресурса](/platform/v2/api-reference/assets/add-version-to-asset)) | **PATCH** | `/v4/accounts/{account_id}/files/{file_id}/move` ([Переместить файл в стек версий](/platform/api-reference/files/move))                                         | Файл перемещается в существующий стек версий. Используйте `version_stack_id` в качестве `parent_id` в теле запроса.                                 |
| **GET**    | `/v2/assets/{asset_id}/children` ([Получить дочерние ресурсы](/platform/v2/api-reference/assets/get-assets))       | **GET**   | `/v4/accounts/{account_id}/version_stacks/{version_stack_id}/children` ([Список дочерних элементов стека версий](/platform/api-reference/version-stacks/index)) | В устаревшем API-интерфейсе используется с идентификатором asset\_id стека версий. В V4 — список дочерних элементов (файлов/версий) в стеке версий. |
| Н/Д        | Н/Д                                                                                                                | **GET**   | `/v4/accounts/{account_id}/folders/{folder_id}/version_stacks` ([Список стеков версий](/platform/api-reference/version-stacks/list))                            | Выводится список стеков версий в папке.                                                                                                             |
| Н/Д        | Н/Д                                                                                                                | **PATCH** | `/v4/accounts/{account_id}/version_stacks/{version_stack_id}/move` ([Переместить стек версий](/platform/api-reference/version-stacks/move))                     | Стек версий перемещается в другую папку.                                                                                                            |
| **GET**    | `/v2/assets/{asset_id}` ([Получить ресурс](/platform/v2/api-reference/assets/get-asset))                           | **GET**   | `/v4/accounts/{account_id}/version_stacks/{version_stack_id}` ([Показать стек версий](/platform/api-reference/version-stacks/show))                             | В устаревшем API-интерфейсе используется с идентификатором asset\_id стека версий. В V4 отображаются сведения о стеке версий.                       |
| **DELETE** | `/v2/assets/{asset_id}/unversion` (Удалить версию)                                                                 | Н/Д       | Н/Д                                                                                                                                                             | Удаление файлов из стека версий в настоящее время не поддерживается в V4.                                                                           |

### 6. Файлы

Примечание. Теперь в V4 есть две конечные точки для создания файлов (локально и через добавление в S3). Подробнее — в разделе [Добавление файлов](/platform/v4/docs/guides/how-to-upload).

| Метод      | Устаревшая конечная точка                                                                                  | Метод      | Конечная точка V4                                                                                                                                                  | Примечания                                                                                                                                                                                                                                            |
| ---------- | ---------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **POST**   | `/v2/assets/{parent_asset_id}/children` ([Создать ресурс](/platform/v2/api-reference/assets/create-asset)) | **POST**   | `/v4/accounts/{account_id}/folders/{folder_id}/files/local_upload` ([Создать файл (локальное добавление)](/platform/v4/api-reference/files/create_local_upload))   | В устаревшем API-интерфейсе требуются имя, тип, тип файла, размер файла и идентификатор auto\_version\_id. В API V4-интерфейсе требуются идентификаторы account\_id и folder\_id в параметрах пути; в полезной нагрузке требуются размер файла и имя. |
| Н/Д        | Н/Д                                                                                                        | **POST**   | `/v4/accounts/{account_id}/folders/{folder_id}/files/remote_upload` ([Создать файл (удаленное добавление)](/platform/v4/api-reference/files/create_remote_upload)) | В параметрах пути требуются идентификаторы account\_id и folder\_id; в полезной нагрузке требуются URL-адрес источника и имя.                                                                                                                         |
| **GET**    | `/v2/assets/{asset_id}` ([Получить ресурс](/platform/v2/api-reference/assets/get-asset))                   | **GET**    | `/v4/accounts/{account_id}/files/{file_id}` ([Показать файл)](/platform/v4/api-reference/files/show)                                                               | Выводятся сведения о файле. Доступны различные включения, позволяющие получать дополнительные сведения о файле в ответе.                                                                                                                              |
| Н/Д        | Н/Д                                                                                                        | **GET**    | `/v4/accounts/{account_id}/files/{file_id}/status` ([Получить метаданные файла](/platform/api-reference/files/show-file-upload-status))                            | Выполняется получение статуса удаленного добавления из конечной точки «Создать файл (удаленное добавление)».                                                                                                                                          |
| **PUT**    | `/v2/assets/{asset_id}` ([Обновить ресурс](/platform/v2/api-reference/assets/update-asset))                | **PATCH**  | `/v4/accounts/{account_id}/files/{file_id}` ([Обновить файл](/platform/v4/api-reference/files/update))                                                             | Обновляется имя файла.                                                                                                                                                                                                                                |
| **DELETE** | `/v2/assets/{asset_id}` ([Удалить ресурс](/platform/v2/api-reference/assets/delete-asset))                 | **DELETE** | `/v4/accounts/{account_id}/files/{file_id}` ([Удалить файл](/platform/v4/api-reference/files/delete))                                                              | Код состояния 204 (нет содержимого) при успешном выполнении.                                                                                                                                                                                          |

### 7. Комментарии

На данный момент в API-интерфейсе V4 поддерживается большинство функций работы с комментариями.

> **Info**
>
> **Функции, которые появятся в ближайшее время:**
>
> * реакции на комментарии, например эмодзи;
> * просмотр или изменение статуса выполнения комментария;
> * отслеживание того, кто просмотрел комментарий (количества просмотров).

> **Note**
>
> Поле «timestamp» указывает на метку кадра, на котором оставлен комментарий (начиная с 1), а не временную метку

| Метод      | Устаревшая конечная точка                                                                                                                        | Метод      | Конечная точка V4                                                                                                      | Примечания                                                                                                |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **GET**    | `/v2/assets/{asset_id}/comments` ([Получить все комментарии и ответы из цепочки комментариев](/platform/v2/api-reference/comments/get-comments)) | **GET**    | `/v4/accounts/{account_id}/files/{file_id}/comments` ([Список комментариев](/platform/api-reference/comments/index))   | Выводится список комментариев к файлу.                                                                    |
| **POST**   | `/v2/assets/{asset_id}/comments` ([Создать комментарий](/platform/v2/api-reference/comments/create-comment))                                     | **POST**   | `/v4/accounts/{account_id}/files/{asset_id}/comments` ([Создать комментарий](/platform/api-reference/comments/create)) | Создается комментарий. Тело аналогично: `{&quot;text&quot;:&quot;Nice&quot;,&quot;timestamp&quot;:12.3}`. |
| **GET**    | `/v2/comments/{comment_id}` ([Получить комментарий по ID](/platform/v2/api-reference/comments/get-comment))                                      | **GET**    | `/v4/accounts/{account_id}/comments/{comment_id}` ([Показать комментарий](/platform/api-reference/comments/show))      | Выполняется получение отдельного комментария по ID.                                                       |
| **PUT**    | `/v2/comments/{comment_id}` ([Обновить комментарий](/platform/v2/api-reference/comments/update-comment))                                         | **PATCH**  | `/v4/accounts/{account_id}/comments/{comment_id}` ([Обновить комментарий)](/platform/api-reference/comments/update)    | Обновляется текст, время и т. д.                                                                          |
| **DELETE** | `/v2/comments/{comment_id}` ([Удалить комментарий](/platform/v2/api-reference/comments/delete-comment))                                          | **DELETE** | `/v4/accounts/{account_id}/comments/{comment_id}` ([Удалить комментарий](/platform/api-reference/comments/delete))     | Удаляется комментарий.                                                                                    |
| **GET**    | `/v2/comments/{comment_id}/impressions` ([Получить количество просмотров](/platform/v2/api-reference/comments/get-comment-impressions))          | Н/Д        | Н/Д                                                                                                                    | Функция получения количества просмотров в настоящее время не поддерживается в V4.                         |

### 8. Общий доступ (ссылки для рецензирования / презентации)

В Frame V4 ссылки общего доступа больше не разделяются на ссылки для рецензирования и ссылки на презентации. Теперь в V4 можно настроить различные стили для таких ссылок, чтобы они соответствовали интерфейсу рецензирования или презентации.

Примечание. Взаимодействие с устаревшими ссылками для рецензирования и презентациями через API-интерфейс V4 не поддерживается.

| Метод      | Устаревшая конечная точка                                                                                                                            | Метод      | Конечная точка V4                                                                                                                                                      | Примечания                                                                                                                                                     |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **GET**    | `/v2/projects/{project_id}/review_links` ([Список ссылок на рецензирование в проекте](/platform/v2/api-reference/review-links/list))                 | **GET**    | `/v4/accounts/{account_id}/projects/{project_id}/shares` ([Список общих ресурсов](https://developer.adobe.com/frameio/api/current/#tag/Shares/operation/shares.index)) | Выводит список общих ресурсов в проекте (обратите внимание, что сюда не входят устаревшие ссылки на рецензирование и презентации).                             |
| **POST**   | `/v2/projects/{project_id}/review_links` ([Создать ссылку для рецензирования](/platform/v2/api-reference/review-links/review-link-create))           | **POST**   | `/v4/accounts/{account_id}/projects/{project_id}/shares` ([Создать общий ресурс](https://developer.adobe.com/frameio/api/current/#tag/Shares/operation/shares.create)) | Создает новую ссылку общего доступа. Тело может иметь вид `{&quot;data&quot;:{&quot;name&quot;:&quot;Review Link&quot;,&quot;type&quot;:&quot;review&quot;}}`. |
| **POST**   | `/v2/review_links/{link_id}/assets` ([Добавить ресурс в ссылку для рецензирования](/platform/v2/api-reference/review-links/review-link-item-create)) | **POST**   | `/v4/accounts/{account_id}/shares/{share_id}/assets` ([Добавить новый ресурс в ссылку общего доступа](/platform/api-reference/shares/add-asset))                       | Добавляет ресурс в ссылку общего доступа. Поддерживаются файлы, папки и стеки версий.                                                                          |
| Н/Д        | Не существует                                                                                                                                        | **DELETE** | `/v4/accounts/{account_id}/shares/{share_id}/assets/{asset_id}` [(Удалить общий ресурс)](/platform/api-reference/shares/remove-asset)                                  | Удаляет ресурс из ссылки общего доступа.                                                                                                                       |
| **DELETE** | `/v2/review_links/{link_id}` ([Удалить ссылку для рецензирования](/platform/v2/api-reference/review-links/review-link-delete))                       | **DELETE** | `/v4/accounts/{account_id}/shares/{share_id}` [(Удалить общий ресурс)](/platform/api-reference/shares/delete)                                                          | Удаляет ссылку общего доступа.                                                                                                                                 |
| **PUT**    | `/v2/review_links/{review_link_id}` ([Обновить ссылку для рецензирования](/platform/v2/api-reference/review-links/review-link-update))               | **PATCH**  | `/v4/accounts/{account_id}/shares/{share_id}` [(Обновить общий ресурс)](/platform/api-reference/shares/update)                                                         | Обновляет ссылку общего доступа.                                                                                                                               |

### 9. Веб-перехватчики

Веб-перехватчики, которые вы использовали в V3, будут перенесены и в большинстве случаев продолжат работать так же. Сразу после миграции они будут отключены и их нужно будет включить для возобновления работы. Потребуются некоторые изменения для событий ресурсов, которые теперь разделены на файлы и папки. Также обратите внимание на новые события, специфичные для версии V4: события metadata.value.updated, а также события, связанные с коллекциями и общим доступом.

| Метод      | Устаревшая конечная точка                                                                                                                          | Метод      | Конечная точка V4                                                                                                                                                            | Примечания                                                                                                                                                                                                                                                   |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **POST**   | `/v2/teams/{team_id}/hooks` [(Создать веб-перехватчик)](/platform/v2/api-reference/webhooks/create-webhook-for-team)                               | **POST**   | `/v4/accounts/{account_id}/workspaces/{workspaces_id}/webhooks` [(Создать веб-перехватчик)](/platform/api-reference/webhooks/create)                                         | Передайте данные в следующем формате: `{&quot;data&quot;:{&quot;url&quot;:&quot;...&quot;,&quot;events&quot;:[&quot;file.created&quot;,...]}}`.                                                                                                              |
| **GET**    | `/v2/accounts/{account_id}/webhooks` [(Получить веб-перехватчики для учетной записи)](/platform/v2/api-reference/webhooks/get-webhooks-by-account) | **GET**    | `/v4/accounts/{account_id}/workspaces/{workspaces_id}/webhooks` [(Список веб-перехватчиков)](/platform/api-reference/webhooks/index)                                         | Позволяет получить все веб-перехватчики для рабочей среды. Примечание. Чтобы получить все веб-перехватчики для учетной записи, необходимо получить все рабочие среды для данной учетной записи, а затем получить все веб-перехватчики для этих рабочих сред. |
| **GET**    | `/v2/hooks/{hook_id}` [(Получить веб-перехватчик)](/platform/v2/api-reference/webhooks/get-webhook)                                                | **GET**    | `/v4/accounts/{account_id}/webhooks/{webhook_id}` [(Список веб-перехватчиков)](/platform/api-reference/webhooks/index)                                                       | Позволяет получить информацию о веб-перехватчиках.                                                                                                                                                                                                           |
| **PUT**    | `/v2/hooks/{hook_id}` [(Обновить веб-перехватчик)](/platform/v2/api-reference/webhooks/update-webhook)                                             | **PATCH**  | `/v4/accounts/{account_id}/webhooks/{webhook_id}` [(Обновить веб-перехватчик)](https://developer.adobe.com/frameio/api/experimental/#tag/Webhooks/operation/webhooks.update) | Обновляет настройки веб-перехватчика.                                                                                                                                                                                                                        |
| **DELETE** | `/v2/hooks/{hook_id}` [(Удалить веб-перехватчик)](/platform/v2/api-reference/webhooks/delete-webhook)                                              | **DELETE** | `/v4/accounts/{account_id}/webhooks/{webhook_id}` [(Удалить веб-перехватчик)](https://developer.adobe.com/frameio/api/experimental/#tag/Webhooks/operation/webhooks.delete)  | Удаляет веб-перехватчик.                                                                                                                                                                                                                                     |

### 10. Пользовательские действия

Пользовательские действия, которые вы использовали в V3, будут перенесены, но потребуют некоторых изменений в обработке запросов и ответов. Сразу после миграции они будут отключены и их нужно будет включить для возобновления работы. Подробнее — в этом [(документе)](/platform/v4/docs/guides/custom-actions#migrated-actions).

Примечание. Конечные точки пользовательских действий в настоящее время находятся в экспериментальном API-интерфейсе и потребуют заголовка «api-version: experimental».

| Метод      | Устаревшая конечная точка                                                                                                                          | Метод      | Конечная точка V4                                                                                                                                                          | Примечания                                                          |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **POST**   | `/v2/teams/{team_id}/actions` ([Создать пользовательское действие](/platform/v2/api-reference/custom-actions/create-action-for-team))              | **POST**   | `/v4/accounts/{account_id}/workspaces/{workspace_id}/actions` ([Создать пользовательское действие](/platform/v4-experimental/api-reference/custom-actions/actions-create)) | Создает пользовательское действие в рабочей среде.                  |
| **DELETE** | `/v2/actions/{action_id}` ([Удалить пользовательское действие](/platform/v2/api-reference/custom-actions/delete-action))                           | **DELETE** | `/v4/accounts/{account_id}/actions/{action_id}` ([Удалить пользовательское действие](/platform/v4-experimental/api-reference/custom-actions/actions-delete))               | Удаляет пользовательское действие.                                  |
| **PUT**    | `/v2/actions/{action_id}` ([Обновить пользовательское действие](/platform/v2/api-reference/custom-actions/update-action))                          | **PATCH**  | `/v4/accounts/{account_id}/actions/{action_id}` ([Обновить пользовательское действие](/platform/v4-experimental/api-reference/custom-actions/actions-update))              | Обновляет сведения о пользовательском действии.                     |
| **GET**    | `/v2/teams/{team_id}/actions` ([Получить пользовательские действия для команды](/platform/v2/api-reference/custom-actions/get-actions-by-account)) | **GET**    | `/v4/accounts/{account_id}/workspaces/{workspace_id}/actions` ([Список пользовательских действий](/platform/v4-experimental/api-reference/custom-actions/actions-index))   | Выводит список пользовательских действий в указанной рабочей среде. |
| **GET**    | `/v2/actions/{action_id}` ([Получить пользовательское действие по ID](/platform/v2/api-reference/custom-actions/get-action))                       | **GET**    | `/v4/accounts/{account_id}/actions/{action_id}` ([Показать сведения о пользовательском действии](/platform/v4-experimental/api-reference/custom-actions/actions-show))     | Выводит сведения о пользовательском действии.                       |

## Этапы миграции

#### Настройка неподдерживаемых конечных точек V2

**Настройте** любые неподдерживаемые устаревшие конечные точки V2.

#### Обновление базовых URL-адресов

**Обновите базовые URL-адреса** с `api.frame.io/v2/...` до `api.frame.io/v4/...`.

#### Обновление запросов к API-интерфейсу

**Обновите запросы к API-интерфейсу** в своем коде, чтобы они ссылались на новую схему конечных точек.

#### Обновление полезной нагрузки JSON

**Обновите полезную нагрузку JSON** в схемах запросов/ответов, чтобы создавались и использовались правильные поля.

#### Обновление терминологии

Обновите терминологию: «команды» → «рабочие среды»; «ресурсы» → «файлы/папки»; «ссылки для рецензирования» или «ссылки на презентацию» → «общие ресурсы» в коде и интерфейсе.

#### Тестирование конечных точек

**Протестируйте** все недавно обновленные конечные точки. Если появляются ошибки 403, 404, 422, проверьте конечные точки, структуру полезной нагрузки запроса и другие параметры.

#### Анализ ответов об ошибках

**Проанализируйте** новые возвращаемые сведения об ошибках и найдите проблему в ответе JSON `{&quot;errors&quot;: [...]}` в случае неудачного вызова API-интерфейса.

#### Развертывание в производство

**Разверните** свое решение в производство после подтверждения корректной работы с учетной записью в [Frame.io](http://frame.io/) V4.

## Обработка ошибок и распространенные проблемы

> **Note**
>
> Некоторые маршруты могут возвращать ошибки с пользовательскими описаниями, которые могут незначительно отличаться от приведенных ниже примеров.

#### Ошибки клиента (4xx)

* **400** (неправильный запрос): проверьте точность полезной нагрузки. \* **401** (не авторизован): недействительный или отсутствующий токен авторизации. \* **403** (запрещено): отсутствует область доступа или у пользователя нет нужных прав. \* **404** (не найдено): подтвердите конечную точку, версию API-интерфейса или идентификаторы. \* **422** (необрабатываемая сущность): проверьте данные запроса \* **429** (слишком много запросов): выполните повторный запрос с экспоненциальной задержкой.

#### Ошибки сервера (5xx)

* **500** (внутренняя ошибка сервера): повторите попытку после небольшой задержки.

## Поддержка SDK

Как и для предыдущей версии, разработчикам доступен SDK для Python, а также впервые появился SDK для TypeScript. Эти SDK обладают схожей функциональностью, но используют совершенно разные методы, поэтому, если вы обновляете SDK с устаревших до версии V4, обязательно обновите свой код соответствующим образом. SDK доступны по ссылкам ниже:

[Начало работы с SDK](/platform/docs/getting-started#sdks), [SDK для Python](/platform/docs/sdk-reference/python-sdk-reference), [SDK для Typescript](/platform/docs/sdk-reference/type-script-sdk-reference).

---