• 0
Rusland

Доступ к Yandex.Disk

Вопросы

Есть ли готовое решение для доступа к Yandex.Disk?

Есть REST API Диска на Java для Android, Swift для iOS, PHP: https://tech.yandex.ru/disk/rest/

А есть ли что-нибудь для Delphi?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 ответов на этот вопрос

  • 0

Есть ли готовое решение для доступа к Yandex.Disk?

Есть REST API Диска на Java для Android, Swift для iOS, PHP: https://tech.yandex.ru/disk/rest/

А есть ли что-нибудь для Delphi?

Читал вот тут недавно статейку. Но сам пока не проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Почитал несколько статей и эту в том числе, в основном показан доступ к чтению списка файлов... а вот как читать/записывать в файл в облаке что-то мало информации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 05.07.2017 в 14:26, marsden сказал:

Понимаю, что опоздал почти на два года, но все же, для истории и новичков )))

В Токио заработало.

Еще бы 3 часть статьи про скачивание файла с Яндекс.Диска :) 

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@marsden В Берлине, в отличии от Токио, у RESTRequest нет метода AddFile. Как это обойти?

 

 

Попробовал скопировать в папку с проектом файлы REST.Client.pas, REST.Types.pas, IPPeerAPI.pas из Токио, при компиляции получаю ошибку:

[dcc32 Fatal Error] IPPeerAPI.pas(1260): F2051 Unit REST.HttpClient was compiled with a different version of IPPeerAPI.IIPMultipartFormDataStream

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вот так получаю список файлов:

procedure TForm1.GetFileList();
var
  Link,Mem:String;
  Code:Integer;
begin  
  RESTRequest1.Params.Clear;
  RESTRequest1.Params.Add;

  RESTRequest1.Params[0].Kind:=TRESTRequestParameterKind.pkHTTPHEADER;
  RESTRequest1.Params[0].name:='Authorization';
  RESTRequest1.Params[0].Options:=[poDoNotEncode];
  RESTRequest1.Params[0].Value:='OAuth ' + OAuth2Authenticator1.AccessToken;



  RESTRequest1.AddParameter('path', 'disk:/');  
  RESTRequest1.AddParameter('limit', '100');    //  ограничение списка файлов до 100
  RESTRequest1.AddParameter('media_type', 'video'); // не срабатывает этот фильтр



  RESTRequest1.Resource:='/disk/resources';
  RESTRequest1.Method:=rmGet;
  
  RESTRequest1.Execute;
  if RESTRequest1.Response.StatusCode=200 then begin
    Memo1.Lines.Text:=RESTRequest1.Response.Content;
    // TODO дальше надо бежать по списку и найдя нужный файл скачать его
  end 
  else Memo1.Lines.Add('запрос ссылки - ошибка '+RESTRequest1.Response.StatusCode.ToString);
end;

Почему не срабатывает ограничение 'media_type', 'video' ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 24.07.2017 в 16:18, Rusland сказал:

@marsden В Берлине, в отличии от Токио, у RESTRequest нет метода AddFile. Как это обойти?

 

 

Попробовал скопировать в папку с проектом файлы REST.Client.pas, REST.Types.pas, IPPeerAPI.pas из Токио, при компиляции получаю ошибку:

[dcc32 Fatal Error] IPPeerAPI.pas(1260): F2051 Unit REST.HttpClient was compiled with a different version of IPPeerAPI.IIPMultipartFormDataStream

Лучше поздно, чем никогда) Например так

// RESTRequest1.AddFile(FileName);

 AStream := TMemoryStream.Create();
 AStream.LoadFromFile('D:\1.mp4');   
 RESTRequest1.AddBody(AStream, ctVIDEO_MP4);

Изменено пользователем jornada

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Денис Демин
      Здравствуйте, есть такая задача:
      1) Необходимо вставить карту от Яндекса на форму.
      2) Необходимо вставить информацию текстовую (информация о доставке или оплате), это можно также вставить HTML кодом, а лучше просто отформатированным содержанием. 
      Заранее спасибо всем за ответы.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу