mettle / adobe-sign-php
Adobe Sign PHP Client
v0.5.0
2022-02-08 14:32 UTC
Requires
- php: ^7.3 || ^8.0 || ^8.1
- ext-json: *
- mettle/oauth2-adobe-sign: ^0.2
Requires (Dev)
- phpunit/phpunit: ^9.0
README
Unofficial PHP SDK for the Adobe Sign REST API Version 5 Methods
https://acrobat.adobe.com/us/en/sign.html
Requirements
The following versions of PHP are supported:
- PHP 8.1
- PHP 8.0
- PHP 7.4
- PHP 7.3
Installation
To install, use composer:
composer require mettle/adobe-sign-php
Documentation
https://secure.na1.adobesign.com/public/docs/restapi/v5
Example Usage
session_start(); $provider = new Mettle\OAuth2\Client\AdobeSign([ 'clientId' => 'your_client_id', 'clientSecret' => 'your_client_secret', 'redirectUri' => 'your_callback', 'scope' => [ 'scope1:type', 'scope2:type' ] ]); $adobeSign = new AdobeSign($provider); if (!isset($_GET['code'])) { $authorizationUrl = $adobeSign->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authorizationUrl); } elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { unset($_SESSION['oauth2state']); exit('Invalid state'); } else { $accessToken = $adobeSign->getAccessToken($_GET['code']); $adobeSign->setAccessToken($accessToken->getToken()); $adobeSign->createAgreement([ 'documentCreationInfo' => [ 'fileInfos' => [ 'libraryDocumentId' => 'your_library_document_id' ], 'name' => 'My Document', 'signatureType' => 'ESIGN', 'recipientSetInfos' => [ 'recipientSetMemberInfos' => [ 'email' => 'test@gmail.com' ], 'recipientSetRole' => [ 'SIGNER' ] ], 'mergeFieldInfo' => [ [ 'fieldName' => 'Name', 'defaultValue' => 'John Doe' ] ], 'signatureFlow' => 'SENDER_SIGNATURE_NOT_REQUIRED' ] ]); }
Generate Multipart Stream for transient document upload
Thanks to @trip-somers for the solution.
$file_path = '/path/to/local/document'; $file_stream = Psr7\FnStream::decorate(Psr7\stream_for(file_get_contents($file_path)), [ 'getMetadata' => function() use ($file_path) { return $file_path; } ]); $multipart_stream = new Psr7\MultipartStream([ [ 'name' => 'File', 'contents' => $file_stream ] ]); $transient_document = $adobeSign->uploadTransientDocument($multipart_stream);
License
The MIT License (MIT). Please see LICENSE for more information.