Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   subir ficheros a dropbox (https://www.clubdelphi.com/foros/showthread.php?t=94310)

botones67 21-11-2019 21:09:18

subir ficheros a dropbox
 
1 Archivos Adjunto(s)
Hola amigos del foro.
Estoy intentando seguir un ejemplo que encontré para poder subir files a dropbox
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs,IdHTTP, IdSSLOpenSSL, System.JSON;

type
  TForm1 = class(TForm)
    procedure FormActivate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
   Function Download(Const Folder, Nam, LocalFile: String): Boolean;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{ TForm1 }

function TForm1.Download(const Folder, Nam, LocalFile: String): Boolean;
  Var
  FIdHTTP: TIdHTTP;
  file_path,fAccessToken: String;
  StrResp: TmemoryStream;
  json: Tjsonobject;
Begin
  Result := False;
  fAccessToken:='Aqui va mi token de acceso a dropbox';
  If Folder = '' Then
    file_path := Nam
  Else
    file_path := trim(Folder + '/' + Nam);

  FIdHTTP := TIdHTTP.Create;
  StrResp := TmemoryStream.Create;
  json := Tjsonobject.Create;
  Try
    FIdHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(FIdHTTP);
    FIdHTTP.IOHandler.LargeStream := True;
    FIdHTTP.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + fAccessToken);
    json.AddPair('path', TJSONString.Create( file_path));
    FIdHTTP.Request.CustomHeaders.AddValue('Dropbox-API-Arg', json.ToString);
    FIdHTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    FIdHTTP.HandleRedirects := true;
    FIdHTTP.Request.ContentType := '';
    Try
      FIdHTTP.get('https://content.dropboxapi.com/2/files/download', StrResp);
    Except
      Result := False;
    End;
    Result := FIdHTTP.ResponseCode = 200;
    StrResp.Position := 0;
    If Result Then
      StrResp.SaveToFile(LocalFile);
  Finally
    FIdHTTP.Free;
    StrResp.Free;
    json.Free;
  End;
End;

procedure TForm1.FormActivate(Sender: TObject);
begin
 Download('/Aplicaciones', 'mail.ini', 'c:\mail.ini');
end;

end.
no puede cargar ssl library.

Según embarcadero hay que instalar libeay32.dll y ssleay32.dll librerias.
http://docwiki.embarcadero.com/RADStudio/Rio/en/OpenSSL pero el error persiste, ¿ alguien puede saber que ocurre?.

Un saludo para todos.

Neftali [Germán.Estévez] 22-11-2019 10:04:43

Cita:

Empezado por botones67 (Mensaje 534494)
...no puede cargar ssl library.
Según embarcadero hay que instalar libeay32.dll y ssleay32.dll librerias.
http://docwiki.embarcadero.com/RADStudio/Rio/en/OpenSSL pero el error persiste, ¿ alguien puede saber que ocurre?.


La mayoría de veces ese error suele ser debido a la versión incorrecta de las DLL's.
Revisa que sean 32/64 bits correctas paratu sistema.
Si te siugue dando problemas puedes revisar este proyecto en guthub (de la gente de Clever Components).
Dropbox API for Delphi

"The Dropbox API library for Delphi allows working with Dropbox directory using official Dropbox API v2."

botones67 22-11-2019 11:39:24

Gracias por contestar .
Si, ya puse las versiones correctas en las carpetas correctas para Windows 64bit como recomienda Embarcadero.
Miraré el proyecto de ir me indicas a ver si me.
da alguna pista.
De todas formas , tocando otro palo , he mirado la documentación del Api y por ejemplo
——————————————————
[delphi]
curl -X POST https://api.dropboxapi.com/2/file_requests/count \
--header "Authorization: Bearer “ aquí mi Token” y me da error.

[delphi]

Te quería preguntar , para esa solicitud en concreto cómo sería la sintaxis del
Get para el Rest debugger porque siempre da error “ Api función no found” , no la debo de escribir bien.
Un saludo saludo.

Neftali [Germán.Estévez] 22-11-2019 12:20:33

Se me ha olvidado comentar que dependiendo de la licencia que tengas, puedes usar los "Enterprise Connectors" que entre los muchos disponibles está el de Dropbox.
https://community.idera.com/develope...hitect-edition

Si tienes Enterprise o Architech lo tienes disponible


La franja horaria es GMT +2. Ahora son las 22:51:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi