No parece que administre la copia de archivo que funciona con la API de Dropbox. Puedo autorizar con éxito a mi cliente, descargar y cargar archivos. La operación de copia necesita el método POST para ser utilizado y creo que aquí es donde produzco una solicitud incorrecta. Estoy definiendo el Método POST para Autenticación OAuth y uso Indy TIdHTTP para Publicar la solicitud, pero siempre recibo el código de error 403 - Permiso denegado.Cómo copiar archivos usando API REST DropBox en Delphi
Aquí está la descripción de dropbox api: https://www.dropbox.com/developers/reference/api#fileops-copy
aquí es parte de mi código:
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;
Intenta ver cómo usar Indy con SSL. Apuesto a que te faltan las bibliotecas OpenSSL. – TLama
¿Qué te hace pensar que el error significa algo más que el significado documentado? "403: se intentó una operación de copia no válida (por ejemplo, ya hay un archivo en el destino determinado o copia una carpeta compartida en una carpeta compartida)." –
@Tlama, ¿no faltarían las bibliotecas SSL que también interfieren con las operaciones de autorización, carga y descarga, que supuestamente funcionan? –