第一件事:
除非您使用 jQuery under node.js,否则您将无法使用客户端 javascript 访问 Marketo REST API,因为这些请求将因 CORS 而被阻止。
此外,生成Access Token 所需的Client Secret 在客户端将不再保密。因此,您必须从您的服务器执行此操作。
有效载荷:
有问题的有效负载在 API 文档的 REST API / Lead Database / Custom Objects 部分中有更好的记录。
在您的情况下,它看起来像这样:
{
'action' : 'createOrUpdate',// optional
'dedupeBy' : 'dedupeFields',// optional
// input is an array of objects containing the custom object fields
'input' : [
{
'personID' : 'personID',
'emailAddress' : 'emailAddress',
'question01' : 'question01 value',
'question02' : 'question02 value'
},
// …Other items…
]
}
应该在请求的 body 中。下面的示例代码说明了您将如何使用 jQuery 执行此操作,但同样,它无法从客户端运行。
var instanceId = '123-ABC-456',
accessToken = 'ACCESS_TOKEN',
customObjectName = 'customObjectName_c',
payload = payloadFromAbove;
$.ajax({
// Constructing url with ES6 String Interpolation
url: `https://${instanceId}.mktorest.com/rest/v1/customobjects/${customObjectName}.json?access_token=${accessToken}`,
method: 'POST',
data: JSON.stringify(payload),
dataType: 'json',
})
.done(function(response) {
console.log(response);
});