Problématique :
Votre entreprise souhaite que les documents envoyées via Docusign soient automatiquement uploadés sur Google Drive lorsqu’ils sont complétés.
Vous disposez :
-Un compte Docusign
-Utilisez G Suite dans votre entreprise
Tout d’abord vous devez créer un compte de service, la démarche est très détaillée ici https://cloud.google.com/docs/authentication/production?hl=fr
Sauvegarder bien le .json et conservez-le précieusement !
Ensuite sur Docusign, cliquez sur votre vignette de profil > Go to Admin > Connect (docusign.com/connect) > Add Configuration
De là il ne vous reste qu’à remplir l’url où sera hébergé le script suivant. Vous pouvez configurer ce webhook pour que votre script soit appelés à l’envoi de l’enveloppe, ou à la signature ou autre.
Héberger ensuite le script à l’url défini. Faîtes un petit composer require google/apiclient:"^2.0"
dans le même dossier que votre script. Ajoutez-y le fichier .json que vous avez téléchargé précédemment.
$driveService = new Google_Service_Drive($client);
$data = file_get_contents('php://input');
$xml = simplexml_load_string ($data, "SimpleXMLElement", LIBXML_PARSEHUGE);
if ((string)$xml->EnvelopeStatus->Status === "Completed") {
// Loop through the DocumentPDFs element, storing each document.
foreach ($xml->DocumentPDFs->DocumentPDF as $pdf) {
$filename = (string)$pdf->DocumentID . '.pdf';
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => $filename));
$file = $driveService->files->create($fileMetadata, array(
'data' => base64_decode ( (string)$pdf->PDFBytes ),
'mimeType' => 'application/pdf',
'uploadType' => 'multipart',
'fields' => 'id'));
}
}
Modifier VOS_CREDENTIALS pour indiquer le chemin où il se trouve, changez le filename comme vous le souhaitez (des infos seront disponibles dans le $xml).
Et voilà vos documents seront automatiquement uploadé sur Drive.