2016-11-08 72 views
0

我試圖在提交Google表單時自動使用Docusign發送信封。我已經在谷歌腳本編輯器如何將Google表格和Docusign API與Google腳本相關聯?

// When Form Gets submitted 

function onFormSubmit(e) { 

//Get information from form and set our variables 

    var full_name = e.values[2]; 
    var email_address = e.values[3]; 

// Send the email 

    var subject = "TEST trigger"; 
    var body = "Thank you for testing" + full_name + ""; 

    MailApp.sendEmail(email_address, 
        subject, 
        body); 

    var url = "https://demo.docusign.net/restApi/v2/accounts/<accountname>/envelopes"; 

    var payload = 
    { 
    "emailSubject": "Please sign stuff", 
    "emailBlurb": "TesttextTesttextTesttextTesttextTesttext", 
    "templateId": "7078020e-49a0-42c6-b77d-368211d4a666", 
    "templateRoles": [ 
    { 
     "roleName": "client", 
     "name": full_name, 
     "email": email_address 
    }, 
    { 
     "roleName": "name", 
     "name": "name", 
     "email": "emailaddress" 
    }, 
    { 
     "roleName": "name2", 
     "name": "name2", 
     "email": "emailaddress2" 
    } 
    ], 
    "status": "sent" 
    } 

    var options = 
    { 
    "contentType": "application/json", 
    "method" : "post", 
    "headers": 
    { 
    "X-DocuSign-Authentication": "{\"Username\":\"<username>\",\"Password\":\"<pw>\",\"IntegratorKey\":\"<integratorkey>"}" 
    }, 
    "payload" : payload 
    }; 

    UrlFetchApp.fetch(url, options); 
} 

我收到以下錯誤消息,寫了下面的代碼,它似乎有些不對的格式:

POST https://demo.docusign.net:7802/restApi/v2/accounts/<accountid>/envelopes 

TraceToken: 0304eb5f-1188-4880-a22c-861839f4e8d9 
Timestamp: 2016-10-25T09:40:49.0423980Z 

Content-Length: 187 
Content-Type: application/json 
Connection: Keep-alive 
Host: demo.docusign.net 
User-Agent: Mozilla/5.0(compatible; Google-Apps-Script) 
X-DocuSign-Authentication: {"Username":"<email>","Password":"[omitted]","IntegratorKey":"[omitted]"} 
X-BROKER-EVENT-ID: AHI413WWv-VgeLRQbOpMQH-Y6J-93aHL4h5phAVpXeXUqK8RsYof90Eu68CI-LkC1Ef4FM8Hac-1 
X-Forwarded-For: 107.178.192.41 
X-SecurityProtocol-Version: TLSv1.2 
X-SecurityProtocol-CipherSuite: ECDHE-RSA-AES256-GCM-SHA384 
Accept: application/json 

emailBlurb=TesttextTesttextTesttextTesttextTesttext&templateRoles=%5BLjava.lang.Object;@3449f174&templateId=7078020e-49a0-42c6-b77d-368211d4a666&emailSubject=Please+sign+stuff&status=sent 
400 BadRequest 
Content-Type: application/json; charset=utf-8 

{ 
    "errorCode": "INVALID_REQUEST_BODY", 
    "message": "The request body is missing or improperly formatted. Unexpected character encountered while parsing value: e. Path '', line 0, position 0." 
} 

如何進行的將是任何幫助大。

回答

2

我認爲問題在於您指定要以JSON格式提交數據,並且服務器可能會期望但實際上您的數據不是這種格式。

默認情況下,當遇到JavaScript對象作爲​​選項的參數時(如您所提供的那樣),Apps Script將其編碼爲表單數據。

,而不是指定的:

// Payload is a JS object and will be encoded as formdata by default 
"payload" : payload 

您需要指定:

// Payload is now a JSON representation of the payload variable. 
"payload" : JSON.stringify(payload) 

這應該幫助。

相關問題