При регистрации приложения не был указан callback url
OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей (третьей стороне) логин и пароль.
Получение доступа можно разделить на 2 этапа:
- Название приложения;
- Указать право доступа "Яндекс.Диск REST API" и отметить галочкой "Доступ к папке приложения на Диске";
- Указать Callback URL, кликнув на ссылке "Подставить URL для разработки".
После этого нажать на кнопку "Сохранить":
Cервер зарегистрирует приложение и отобразит присвоенные ему идентификационные данные:
На этом регистрация приложения закончена.
Получение разрешения на доступ к диску
Для отправки запроса на доступ требуется сформировать url следующего вида:
После чего перейти по получившейся ссылке и нажать на кнопку "Разрешить".
В ответ сервер сгенерирует токен, с помощью которого можно получить доступ к диску.
Данный токен действителен в течении года. Через год необходимо будет получить его заного.
Немного подробнее о использовании Yandex.Disk REST API
Сохранение файлов происходит в два этапа:
- Зарос URL для загрузки файла;
- Загрузка файла на полученный URL.
Давайте рассмотрим их немного подробнее.
Формат запроса URL для загрузки файла
Запрос URL для загрузки следует отправлять с помощью метода GET.
path - путь, по которому следует загрузить файл. Например, %2Fbar%2Fphoto.jpg
Путь в значении параметра следует кодировать в URL-формате.
overwrite (необязательный) - признак перезаписи файла. Учитывается, если файл загружается в папку, в которой уже есть файл с таким именем.
Допустимые значения: «false» — не перезаписывать файл, отменить загрузку (используется по умолчанию); «true» — удалить файл с совпадающим именем и записать загруженный файл.
fields (необязательный) - список ключей JSON, которые следует включить в ответ. Ключи, не указанные в этом списке, будут отброшены при составлении ответа. Если параметр не указан, ответ возвращается полностью, без сокращений. Имена ключей следует указывать через запятую, а вложенные ключи разделять точками. Например: «name,_embedded.items.path».
Формат ответа
Если запрос был обработан без ошибок, API отвечает кодом 200 OK. В теле ответа, в объекте Link, возвращается сгенерированный URL для загрузки файла. Если в течение 30 минут этот URL не будет запрошен, он перестанет работать, и нужно будет запросить новую ссылку.
Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.
Загрузка файла на полученный URL
Читайте также: