我似乎无法使用dropbox api管理文件复制操作。我可以成功授权我的客户端,下载和上传文件。复制操作需要使用POST方法,我认为这是我产生错误请求的地方。 我正在定义OAuth身份验证的POST方法并使用Indy TIdHTTP发布请求,但我总是收到错误代码403 - 权限被拒绝。如何在Delphi中使用DropBox REST API复制文件
这里是Dropbox的API描述: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;
尝试查看如何使用Indy和SSL。我敢打赌你错过了OpenSSL库。 – TLama
是什么让你认为错误意味着记录的意义以外的任何东西? “403:尝试进行无效的复制操作(例如,在给定目的地已经有文件,或将共享文件夹复制到共享文件夹中)。” –
@Tlama,不会丢失SSL库也会干扰授权,上传和下载操作,据推测这些操作可行? –