【问题标题】:API POST via Zapier通过 Zapier 的 API POST
【发布时间】: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);

【问题讨论】:

    标签: rest zapier salesforce-marketing-cloud


    【解决方案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}) 可能有用。

    【讨论】:

      猜你喜欢
      • 2022-07-29
      • 2016-09-01
      • 2023-03-16
      • 2019-07-17
      • 2018-01-03
      • 2020-12-17
      • 2021-06-26
      • 2017-12-07
      • 2018-10-12
      相关资源
      最近更新 更多