通过 Zapier 的 API POST
Posted
技术标签:
【中文标题】通过 Zapier 的 API POST【英文标题】:API POST via Zapier 【发布时间】:2021-06-20 06:15:02 【问题描述】:我正在尝试通过 Zapier 使用 REST API POST 来触发 salesforce marketingcloud 中的旅程。但 Zapier 总是返回错误“您必须返回单个对象或对象数组。”。我在这里做错了什么?
var obj =
method: 'POST',
headers:
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer '+inputData.mytoken,
,
body: JSON.stringify(
"ContactKey": inputData.data_TransactionID,
"EventDefinitionKey":"APIEvent-XXXX",
"Data": [
"TransactionId": inputData.data_TransactionID,
"DonationAmount": inputData.data_Amount,
"DonationPurpose": inputData.data_Purpose,
"Email": inputData.data_email,
"SubscriptionToken": inputData.data_SubToken,
"FirstName": inputData.data_FirstName,
"LastName": inputData.data_LastName
]
)
fetch('https://mc4XXX.rest.marketingcloudapis.com/interaction/v1/events', obj)
.then(function(res)
return res.json();
)
.then(function(json)
callback(null, json);
)
.catch(callback);
【问题讨论】:
【参考方案1】:如果不了解返回的 JSON 的结构,很难说,但我可以猜测一下。
错误是抱怨传递给callback
的值json
。以下是该json
变量值的几个示例:
// cause an error
true
3
undefined
[]
[3]
// no error
success: true
[ cool: true ]
返回值的类型必须是对象 () 或每个项目都是对象的数组 (
[]
)。
如果您在callback
之前先console.log(json)
,您将准确地看到您返回的内容,并且可以弄清楚如何将其包装在一个对象中。在黑暗中拍摄,但我猜callback(null, json)
可能有用。
【讨论】:
以上是关于通过 Zapier 的 API POST的主要内容,如果未能解决你的问题,请参考以下文章
从 PHP Curl 获取 POST Zapier webhook 响应