Доступ к API

Для успешного вызова API необходимы:

  • Корректные заголовки Accept и Content-Type: API Диска поддерживает только один MIME-тип, application/json. Любое другое значение приведет к ошибке формата данных.

  • URL, составленный согласно требованиям к нужному запросу.

  • OAuth-токен, выданный вашему приложению для доступа к Диску определенного пользователя. Для запросов, которые не требуют авторизации, это указано явно.

Общие правила для составления URL

Правила, общие для всех ресурсов:

  • Хост для всех запросов к API — cloud-api.yandex.net. При загрузке и скачивании файла необходимо отдельно обращаться к сервису загрузки файлов и хранилищу Диска.

  • В каждом запросе необходимо указывать версию API, например, версия 1 обозначается так: cloud-api.yandex.net/v1/.

  • Корневой каталог Диска может быть указан как явно, так и неявно – пути disk:/foo и /foo указывают на одну и ту же папку.

Получение OAuth-токенов

Яндекс Диск авторизует приложения с помощью OAuth-токенов. Каждый токен предоставляет определенному приложению доступ к данным определенного пользователя.

Чтобы использовать протокол OAuth при работе с Яндекс Диском:

  1. Зарегистрируйте свое OAuth-приложение.

    1. Войдите в аккаунт на Яндексе.

    2. Откройте страницу создания приложения.

    3. Укажите название вашего сервиса и при необходимости прикрепите иконку.

    4. Выберите платформы, на которых будет работать ваше приложение, и укажите их параметры .

      Если вы разрабатываете или тестируете приложение, используйте отладочный токен. Для получения такого токена выберите Веб-сервисы и в поле Redirect URI подставьте значение по умолчанию, которое появится в подсказке Подставить URL для отладки: https://oauth.yandex.ru/verification_code.

    5. В разделе Доступ к данным укажите необходимые права доступа (помимо доступа к файлам пользователя можно пользоваться папкой приложения):

      • Запись в любом месте на Диске — cloud_api:disk.write;
      • Чтение всего Диска — cloud_api:disk.read;
      • Доступ к папке приложения на Диске — cloud_api:disk.app_folder;
      • Доступ к информации о Диске — cloud_api:disk.info.
    6. Укажите электронную почту для связи.

    7. Внизу страницы нажмите Создать приложение. На экране появятся его описание.

    8. Скопируйте идентификатор приложения из поля ClientID — он потребуется для получения OAuth-токена. В дальнейшем открыть страницу со всеми вашими приложениями вы сможете по ссылке oauth.yandex.ru.

  2. Получите OAuth-токены для доступа к данным пользователей любым подходящим способом.

    Отладочный токен необходимо получить вручную:

    1. Перейдите по ссылке

      https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>
      

      Вместо <ClientID> подставьте значение из пункта 1.8.

    2. Если токен вашему приложению выдается впервые, откроется экран авторизации. После входа Яндекс OAuth перенаправит вас на страницу с токеном. Подробнее об отладочных токенах.

Полученный токен следует передавать в заголовке Authorization при каждом вызове API Диска, указывая тип токена перед его значением. Пример такого заголовка:

Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07