从返回"UNSPECIFIED_ERROR"的模板创建信封

Coo*_*ame 0 javascript node.js docusignapi

当我尝试从模板创建信封时,我得到以下响应:

{ errorCode: 'UNSPECIFIED_ERROR',
  message: 'Non-static method requires a target.' }
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所做的事情:

首先我登录,返回

 { loginAccounts: 
   [ { name: '*****',
       accountId: '*****',
       baseUrl: 'https://demo.docusign.net/restapi/v2/accounts/******',
       isDefault: 'true',
       userName: '***** ********',
       userId: '*******-*****-*****-*****-*********',
       email: '********@*******.com',
       siteDescription: '' } ] }
Run Code Online (Sandbox Code Playgroud)

那么我从该响应中取出baseUrl并尝试创建信封.我正在使用hapi框架和async.waterfall异步库,所以对于不熟悉其中任何一个的人,我使用异步库使用next回调调用下一个函数,在这种情况下将获取iframe的url,并且我们使用hapi框架AppServer.Wreck粗略等同于request:

    function prepareEnvelope(baseUrl, next) {
        var createEntitlementTemplateId = "99C44F50-2C97-4074-896B-2454969CAEF7";
        var getEnvelopeUrl  = baseUrl + "/envelopes";
        var options = {
            headers: {
                "X-DocuSign-Authentication": JSON.stringify(authHeader),
                "Content-Type": "application/json",
                "Accept": "application/json",
                "Content-Disposition": "form-data"
            },
            body : JSON.stringify({
                status: "sent",
                emailSubject: "Test email subject",
                emailBlurb: "My email blurb",
                templateId: createEntitlementTemplateId,
                templateRoles: [
                    {
                        email: "anemailaddress@gmail.com",
                        name: "Recipient Name",
                        roleName: "Signer1",
                        clientUserId: "1099", // TODO: replace with the user's id
                        tabs : {
                            textTabs : [
                                {
                                     tabLabel : "acct_nmbr",
                                     value : "123456"
                                },
                                {
                                    tabLabel : "hm_phn_nmbr",
                                    value : "8005882300"
                                },
                                {
                                    tabLabel : "nm",
                                    value : "Mr Foo Bar"
                                }
                            ]
                        }
                    }
                ]
            })
        };

        console.log("--------> options: ", options); // REMOVE THIS ====

        AppServer.Wreck.post(getEnvelopeUrl, options, function(err, res, body) {
            console.log("Request Envelope Result: \r\n", JSON.parse(body));
            next(null, body, baseUrl);
        });
    }
Run Code Online (Sandbox Code Playgroud)

我得到的是:

 { errorCode: 'UNSPECIFIED_ERROR',
  message: 'Non-static method requires a target.' }
Run Code Online (Sandbox Code Playgroud)

从一个小小的谷歌搜索看起来像'非静态方法需要一个目标.是一个C#错误,并没有真正给我很多指示我的配置对象的哪个部分是错误的.

我尝试了一个更简单的调用版本,剥离了所有的标签和clientUserId,我得到了相同的响应.

我在Docusign网站上创建了我的模板,我没有排除在那里设置错误的东西.我创建了一个模板,确认Docusign注意到了命名的表单字段,并创建了一个"占位符"templateRole.

这是templateRole占位符: 占位符templateRole

这是我要填充的一个命名字段和相应的数据标签: 命名表单字段

作为旁注,我能够使基本的vanilla示例在没有命名字段的情况下工作,也不能使用docusign节点包使用模板,但我没有看到任何方法使用带有库的命名表单字段的选项卡并决定我宁愿对我正在做的事情进行更细粒度的控制,所以我选择了点击API.

令人惊讶的是,当我搜索SO以获取errorCode和消息时,我只能找到一个没有分辨率的帖子:/

当然,任何帮助将不胜感激.如果您需要任何其他信息,请随时告诉我们.

Coo*_*ame 5

一旦我收到Docusign的反馈,我的api电话有一个空的身体,我花了几分钟时间才意识到问题是我的选项对象包含body属性而不是payload属性,就像在hapi框架中所做的那样.