Как копировать файлы с помощью Dropbox REST API в Delphi

Мне кажется, что я не могу управлять копированием файлов, используя API Dropbox. Я могу успешно авторизовать свой клиент, загружать и загружать файлы. Операция копирования требует использования метода POST, и я думаю, что именно здесь я создаю неправильный запрос. Я определяю метод POST для аутентификации OAuth и использую Indy TIdHTTP для отправки запроса, но всегда получаю код ошибки 403 — Отказано в доступе.

Вот описание API Dropbox: https://www.dropbox.com/developers/reference/api#fileops-copy

Вот часть моего кода:

 ParamStr := Format('root=%s&from_path=%s&to_path=%s', [Root, EncodeFileName(FromPath), EncodeFileName(ToPath)]);
 URL := 'https://api.dropbox.com/1/fileops/copy' + '?' + ParamStr;

 Consumer := TOAuthConsumer.Create(Key, Secret);
 AToken := TOAuthToken.Create(fToken, fTokenSecret);
 HMAC := TOAuthSignatureMethod_HMAC_SHA1.Create;
 ARequest := TOAuthRequest.Create('');
 try
  ARequest.HTTPURL := URL;
  ARequest.Method := 'POST';
  ARequest := ARequest.FromConsumerAndToken(Consumer, AToken, '');
  ARequest.Sign_Request(HMAC, Consumer, AToken);


  Params := TStringList.Create;
  try
   Params.Text := ParamStr + '&' + ARequest.GetString;
   HTTP.Post(URL, Params);
  finally
   Params.Free;
  end;

22
задан Nostradamus 31 May 2012 в 14:48
поделиться