DocuSign Implicit Grant with Salesforce

163 views Asked by At

I am integrating DocuSign with salesforce using Rest API in order to send the envelopes. Before sending any envelopes I was working on an Implicit grant in order to generate a token but I am not sure what is the right way to get the token. I am using the GET method but I am getting the response in HTML format.

public class SendDocumentsWithDocuSign {  
    
    public void test(){
        String accountID = 'a6e74d5a-****-****-****-28f3bec67ccf'; 
        String userName = 'f2326e06-****-****-****-a1aee682da08'; 
        String passWord = 'password@123'; 
        String integrationKey = 'b19b477c-****-****-a8a5-8ff88ea771cc';
        String templateID = '5259faf7-****-****-a493-ba19ce5d633c'; 
        String redirectURL='https://www.salesforce.com';
        
        //Request the implicit grant
        String TOKEN_URL = 'https://account-d.docusign.com/oauth/auth?response_type=token&scope=signature&client_id='+integrationKey+'&redirect_uri='+redirectURL;
        String authenticationHeader = 
            '<DocuSignCredentials>' + 
            '<Username>' + userName+ '</Username>' +
            '<Password>' + password + '</Password>' + 
            '<IntegratorKey>' + integrationKey  + '</IntegratorKey>' + 
            '</DocuSignCredentials>';           
        
        
        HttpRequest httpreq = new HttpRequest();
        HttpResponse httpres = new HttpResponse();
        Http httpCall = new Http();        
        
        httpreq.setEndpoint(TOKEN_URL);
        httpreq.setMethod('GET');
        //httpreq.setHeader('X-DocuSign-Authentication', authenticationHeader);
        httpreq.setHeader('Content-Type', 'application/json');
        httpreq.setHeader('Accept', 'application/json');
        httpres = httpCall.send(httpreq);
        System.debug(httpres.getHeaderKeys());
        System.debug(httpres.getHeader('X-DocuSign-TraceToken'));
        System.debug(httpres.getHeader('Set-Cookie'));
        System.debug(httpres.getBody());
}
}

I am getting the below Output.

[32]|DEBUG|(X-DocuSign-Node, X-Content-Type-Options, X-DocuSign-TraceToken, Pragma, Date, X-Frame-Options, Strict-Transport-Security, Cache-Control, Content-Security-Policy, Set-Cookie, ...)
[33]|DEBUG|4d4cac98-7cc9-4b3e-a1fe-c12e871b7065
[34]|DEBUG|__RequestVerificationToken=ARFea2sGN3iGpAjBGHGwCJcB0; path=/; secure; HttpOnly
[35]|DEBUG|

 input name="__RequestVerificationToken" type="hidden" value="ARFea2sGN3iGpAjBGHGwCJcAAAAA0"

I want to fetch the access token to call the REST API as given in the DocuSign document. https://developers.docusign.com/platform/auth/implicit/implicit-get-token

1

There are 1 answers

0
Larry K On

To use the DocuSign APEX toolkit, you need to follow the toolkit's authentication methods since that's the only way to use the (needed) integration key from the APEX toolkit.

See the toolkit's authentication instructions.

If you're not using the APEX toolkit then you need to work within the capabilities of SalesForce. Named Credentials is one approach. Here's another.