delphi 使用Dropbox文件请求API收集文件

z9gpfhce  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(129)

我需要以编程方式请求一些文件并发送文件作为响应。我如何通过API从 Delphi 创建一个文件请求(https://www.dropbox.com/requests),以便第三方可以用这种代码将请求的文件发送给我;

procedure TDropbox.Upload(const AFileName: String);
const
  API_URL = 'https://api-content.dropbox.com/1/files_put/sandbox/';
var
  URL: String;
  Stream: TMemoryStream;
  ShortFileName: String;
  https: TIdHTTP;
  SslIoHandler: TIdSSLIOHandlerSocket;
begin
  if not FileExists(AFileName) then
  begin
    raise EInOutError.CreateFmt('File %s not found', [AFileName]);
  end;

  ShortFileName := ExtractFileName(AFileName);
  URL := API_URL+ShortFileName
    + '?oauth_signature_method=PLAINTEXT&oauth_consumer_key=' + FAppKey
    + '&oauth_token=' + FOAuth.AccessToken
    + '&oauth_signature=' + FAppSecret + '%26' + FOAuth.AccessTokenSecret;

  https := TIdHTTP.Create(nil);
  Stream := TMemoryStream.Create;
  try
    SslIoHandler := TIdSSLIOHandlerSocket.Create(https);
    SslIoHandler.SSLOptions.Method := sslvTLSv1;
    SslIoHandler.SSLOptions.Mode := sslmUnassigned;

    https.IOHandler := SslIoHandler;
    Stream.LoadFromFile(AFileName);

    https.Post(URL, Stream);
  finally
    FreeAndNil(Stream);
    FreeAndNil(https);
  end;
end;
qrjkbowd

qrjkbowd1#

您帖子中的代码引用了一个API端点,用于使用已停用的Dropbox API v1上传文件。
如果您希望以编程方式创建文件请求,则应使用当前Dropbox API v2上的/2/file_requests/create端点。您可以在此处找到相关文档:
https://www.dropbox.com/developers/documentation/http/documentation#file_requests-create
请注意,Dropbox API不提供以编程方式将文件上传到文件请求的功能。您可以如上所述以编程方式创建文件请求,但上传到文件请求将是一个手动过程。

相关问题