0

Я хотел бы использовать информацию из формы Google (после отправки), чтобы отправить конверт из шаблона с помощью Docusign api.Как использовать информацию из Google Forms/Docs в Docusign и наоборот?

После того, как конверт завершен, я хочу отправить другому Google Form и Google Doc одному и тому же лицу. Кроме того, я хотел бы отправить несколько писем после завершения шагов.

Я просмотрел сценарий Google Apps, который работает для форм, документов и электронных писем, но я не могу понять, как запустить Docusign api. Любая помощь приветствуется.

ОБНОВЛЕНИЕ: на основании вашей помощи я придумал следующее. Когда я запускаю код ниже, я получаю сообщение об ошибке: «Указанный ключ Integrator не найден или отключен. Ключ Integrator не указан.». Ключ интегратора активен, но может ли он иметь какое-либо отношение к URI перенаправления или секретному ключу? У меня нет их настройки.

// 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); 

// SEND DOCUSIGN ENVELOPE FROM TEMPLATE 

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

    var payload = 
    { 
    "emailSubject": "Please sign stuff", 
    "emailBlurb": "TesttextTesttextTesttextTesttextTesttext", 
    "templateId": "<templateID>", 
    "templateRoles": [ 
    { 
     "roleName": "role1", 
     "name": full_name, 
     "email": email_address 
    }, 
    { 
     "roleName": "role2", 
     "name": "John Doe", 
     "email": "[email protected]" 
    }, 
    { 
     "roleName": "role3", 
     "name": "Joe Smith", 
     "email": "[email protected]" 
    } 
    ], 
    "status": "sent" 
    } 

    var options = 
    { 
    "method" : "post", 
    "header": 
    { 
    "X-DocuSign-Authentication": "{\"Username\":\<username>\",\"Password\":\"<passwork>\",\"IntegratorKey\":\"<integratorkey>\"}" 
    }, 
    "payload" : payload 
    }; 

    UrlFetchApp.fetch(url, options); 
} 

UPDATE: Я изменил header к headers, но теперь я получаю другую ошибку. Эргин, как ты и предложил, я зарегистрировал запрос. Ниже приведено сообщение об ошибке. Кажется, что что-то не так с контентом.

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

TraceToken: <token> 
Timestamp: 2016-10-24T07:24:27.6912557Z 

Content-Length: 187 
Content-Type: application/x-www-form-urlencoded 
Connection: Keep-alive 
Host: demo.docusign.net 
User-Agent: Mozilla/5.0(compatible; Google-Apps-Script) 
X-DocuSign-Authentication: {"Username":"<my email address>","Password":"[omitted]","IntegratorKey":"[omitted]"} 
X-BROKER-EVENT-ID: AHI413UAlYti8n93Pw-ZxoDmQoiCcwanMroRR1LDTgseOKFBkZVomEVZwdxJ-kajUMDC4NN__Z7e 
X-Forwarded-For: 107.178.203.22 
X-SecurityProtocol-Version: TLSv1.2 
X-SecurityProtocol-CipherSuite: ECDHE-RSA-AES256-GCM-SHA384 

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

{ 
    "errorCode": "INVALID_CONTENT_TYPE", 
    "message": "Content Type specified is not supported." 
} 

ОБНОВЛЕНИЕ: после установки типа содержимого у меня возникла ошибка, когда тело было неправильно отформатировано. Ниже

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." 
} 

ответ

1

Ваш запрос будет, конечно, зависит от нескольких факторов, таких как, сколько получателей и вкладок (поля), но на базовом уровне, чтобы отправить запрос на подпись из шаблона, вам необходимо сделать запрос HTTP POST в конверты URI с информацией шаблона в теле запроса:

POST https://demo.docusign.net/restApi/v2/accounts/{accountId}/envelopes 

{ 
    "status": "sent", 
    "emailSubject": "Request a signature via email example", 
    "templateId": "44D9E888-3D86-4186-8EE9-7071BC87A0DA", 
    "templateRoles": [ 
     { 
      "email": "[email protected]", 
      "name": "John Dough", 
      "roleName": "RoleOne", 
      "tabs": { 
       "textTabs": [ 
        { 
         "tabLabel": "ApplicantName", 
         "value": "John Dough" 
        }, 
        { 
         "tabLabel": "ApplicantSSN", 
         "value": "12-345-6789" 
        } 
       ] 
      } 
     } 
    ] 
} 

Вы можете протестировать огибающие: создать API через DocuSign API Explorer.

+0

Спасибо Ergin. Я могу сделать это из своего сценария приложений Google? –

+0

Привет @Ergin, я только что опубликовал обновление. Не могли бы вы посмотреть? –

+0

В сообщении об ошибке сообщается, что он не может найти ваш ключ Integrator в запросе, я бы проверял и гарантировал, что ваш заголовок auth будет правильно подключен, если вы передадите действительный ключ. Я вижу, вы добавили узел 'header' для добавления заголовка, обычно это должно быть множество' headers'. Попробуйте перейти на это, и если это не сработает, вы должны включить ведение журнала запросов в своей учетной записи и запустить трассировку, чтобы вы могли проверить входящий запрос. – Ergin

0

Вы можете использовать Class ItemResponse, чтобы получить ответ на один вопрос в форме. Доступ к элементам ответов можно получить от FormResponse и создан из любого элемента, который просит ответчика ответить на вопрос.

Ниже приведен пример фрагмента кода:

// Open a form by ID and log the responses to each question. 
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); 
var formResponses = form.getResponses(); 
for (var i = 0; i < formResponses.length; i++) { 
    var formResponse = formResponses[i]; 
    var itemResponses = formResponse.getItemResponses(); 
    for (var j = 0; j < itemResponses.length; j++) { 
    var itemResponse = itemResponses[j]; 
    Logger.log('Response #%s to the question "%s" was "%s"', 
     (i + 1).toString(), 
     itemResponse.getItem().getTitle(), 
     itemResponse.getResponse()); 
    } 
} 

... но я не могу понять, как запустить апи DocuSign оттуда.

Вы можете проверить это documentation, так как Скрипт Google Apps может взаимодействовать с API-интерфейсами со всего Интернета. Если вы хотите использовать Google или не Google API, который недоступен в качестве службы сценариев приложений, вы можете подключиться к общедоступному HTTP-интерфейсу API через URL Fetch service.

Эта служба позволяет сценариям получать доступ к другим ресурсам в Интернете путем выбора URL-адресов. Сценарий может использовать службу UrlFetch для отправки запросов HTTP и HTTPS и получения ответов. Служба UrlFetch использует сетевую инфраструктуру Google для повышения эффективности и масштабирования.

Надеюсь, это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^