IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Adobe Sign et Delphi


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Par défaut Adobe Sign et Delphi
    Bonjour à tous,

    j'ai développé un petit CRM sous Delphi pour réaliser mes devis. Le programme me sort le devis au format PDF. J'ai souscrit un abonnement Adobe Sign et j'aimerai pouvoir envoyer mon devis directement pour signature via le CRM. Sur la FAQ adobe je ne trouve rien, et sur le net ca n'est pas mieux...

    Quelqu'un a-t-il déjà fait cela?

    Voila les infos Adobe : https://secure.na1.echosign.com/publ...is/getBaseUris

    Mais je suis plutôt novice sur Delphi et je ne sais pas quel Object utiliser ni les commandes à envoyer à Adobe.

    Dans l'idée, je vois :
    Authentification OAuth2, puis envois du PDF et du mail client. Le PDF se cale sur le modèle créé dans Adobe Sign et l'envois au client automatiquement.

    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 982
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 982
    Par défaut
    Si c'est un WebService, c'est un TRESTClient + TOAuth2Authenticator

    1- TRESTRequest sur le endoint token, extraire le token du json
    2- TRESTRequest sur le WS avec TOAuth2Authenticator.AccessToken contenant le token
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Par défaut
    Bonjour à tous, merci pour les infos, ca fonctionne bien.
    J'ai réussi à m'identifier. Ensuite j'envois mon PDF de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TForm4.Button1Click(Sender: TObject);
    var
      jValue:TJSONValue;
    begin
      RESTClient1.BaseURL := 'https://api.eu1.adobesign.com/api/rest/v6/transientDocuments';
      RESTRequest1.Params.AddItem('File', 'D:\Temp\test.pdf', pkFILE, [poDoNotEncode]);
     
      RESTRequest1.Execute;
      jValue:=RESTResponse1.JSONValue;
      MemoContent.Text:= jValue.ToString;
      MemoContent.Text := AnsiReplaceStr(MemoContent.Text, '{"transientDocumentId":"', '');
      MemoContent.Text := AnsiReplaceStr(MemoContent.Text, '"}', '');
    end;
    Je récupère le transientDocumentId avec RESTReponse mais ensuite je bute. Une fois le PDF envoyé chez adobe je dois créer l'Agreement:

    Code json : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    {
      "fileInfos": [
        {
          "transientDocumentId": "xxXXXXXxxxxxxxx etc....."
        }
      ],
      "name": "Vente",
      "participantSetsInfo": [
        {
          "order": 1,
          "role": "SIGNER",
          "memberInfos": [
            {
              "email": "mail@mail.com"
            }
          ]
        }
      ],
      "signatureType": "ESIGN",
      "state": "IN_PROCESS"
    }

    J'ai essayé de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    RESTClient1.BaseURL := 'https://api.na1.adobesign.com:443/api/rest/v6/agreements';
    RESTRequest1.AddBody(
      '{'+
      '"fileInfos": ['+
      '  {'+
      '    "transientDocumentId": "xxXXXXXxxxxxxxx etc....."'+
      '  }'+
      '],'+
      '"name": "Vente",'+
      '"participantSetsInfo": ['+
      '  {'+
      '    "order": 1,'+
      '    "role": "SIGNER",'+
      '    "memberInfos": ['+
      '      {'+
      '        "email": "mail@mail.com"'+
      '      }'+
      '    ]'+
      '  }'+
      '],'+
      '"signatureType": "ESIGN",'+
      '"state": "IN_PROCESS"'+
      '}');
      RESTRequest1.Execute;
    Sur le site d'adobe : https://secure.na1.adobesign.com/pub...reateAgreement
    tout ce passe bien quand je copie colle mon AgreementInfo mais la impossible j'ai un message d'erreur.

    Si quelqu'un a une idée. Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Par défaut
    J'ai finalement réussi. Si ca peut aider quelqu'un, voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
      RESTClient1.BaseURL := 'https://api.na1.adobesign.com:443/api/rest/v6/agreements';
      RESTRequest1.AddParameter('Content-Type', 'application/json', TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);
      RESTRequest1.Method := TRESTRequestMethod.rmPOST;
      RESTRequest1.AddBody(
           '{'+
      '"fileInfos": ['+
      '  {'+
      '    "transientDocumentId": "xxXXXXXxxxxxxxx etc....."'+
      '  }'+
      '],'+
      '"name": "Vente",'+
      '"participantSetsInfo": ['+
      '  {'+
      '    "order": 1,'+
      '    "role": "SIGNER",'+
      '    "memberInfos": ['+
      '      {'+
      '        "email": "mail@mail.com"'+
      '      }'+
      '    ]'+
      '  }'+
      '],'+
      '"signatureType": "ESIGN",'+
      '"state": "IN_PROCESS"'+
      '}', TRESTContentType.ctAPPLICATION_JSON);
      RESTRequest1.Execute;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/09/2016, 16h21
  2. Réponses: 0
    Dernier message: 29/04/2010, 18h26
  3. [D6]Pilotage Ole d'Adobe Acrobat à partir de Delphi?
    Par brocexco dans le forum Langage
    Réponses: 1
    Dernier message: 17/10/2005, 10h17
  4. [Delphi 6 personnel] Détecter Adobe Reader
    Par balu dans le forum Débuter
    Réponses: 3
    Dernier message: 01/03/2005, 16h10
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo