Доступ к 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 при работе с Яндекс Диском:
-
Зарегистрируйте свое OAuth-приложение.
-
Войдите в аккаунт на Яндексе.
-
Откройте страницу создания приложения https://oauth.yandex.ru/client/new/.
-
Укажите название вашего сервиса и при необходимости прикрепите иконку.
-
Выберите платформы, на которых будет работать ваше приложение, и укажите их параметры .
Если вы разрабатываете или тестируете приложение, используйте отладочный токен. Для получения такого токена выберите Веб-сервисы и в поле Redirect URI подставьте значение по умолчанию, которое появится в подсказке Подставить URL для отладки:
https://oauth.yandex.ru/verification_code
. -
В разделе Доступ к данным укажите необходимые права доступа (помимо доступа к файлам пользователя можно пользоваться папкой приложения). Начните вводить название доступа и выберите нужное значение в выпадающем списке:
- Запись в любом месте на Диске —
cloud_api:disk.write
; - Чтение всего Диска —
cloud_api:disk.read
; - Доступ к папке приложения на Диске —
cloud_api:disk.app_folder
; - Доступ к информации о Диске —
cloud_api:disk.info
.
- Запись в любом месте на Диске —
-
Укажите электронную почту для связи.
-
Внизу страницы нажмите Создать приложение. На экране появятся его описание.
-
Скопируйте идентификатор приложения из поля ClientID — он потребуется для получения OAuth-токена. В дальнейшем открыть страницу со всеми вашими приложениями вы сможете по ссылке oauth.yandex.ru.
-
-
Получите OAuth-токены для доступа к данным пользователей любым подходящим способом.
Отладочный токен необходимо получить вручную:
-
Перейдите по ссылке
https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>
Вместо
<ClientID>
подставьте значение из пункта 1.8. -
Если токен вашему приложению выдается впервые, откроется экран авторизации. После входа Яндекс OAuth перенаправит вас на страницу с токеном. Подробнее об отладочных токенах.
-
Полученный токен следует передавать в заголовке Authorization
при каждом вызове API Диска, указывая тип токена перед его значением. Пример такого заголовка:
Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07