API POST через Zapier

Я пытаюсь запустить путешествие в маркетинговом облаке продаж, используя REST API POST через Zapier. Но 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);

person fgadie    schedule 23.03.2021    source источник


Ответы (1)


Трудно сказать, не зная больше о структуре возвращаемого JSON, но я могу предположить.

Ошибка жалуется на значение json, которое передается в callback. Вот несколько примеров значений этой переменной json:

// cause an error
true
3
undefined
[]
[3]

// no error
{ success: true }
{}
[{ cool: true }]

Тип возвращаемого значения должен быть объектом ({}) или массивом, в котором каждый элемент является объектом ([{}]).

Если вы console.log(json) перед callback, вы точно увидите, что вы возвращаете, и сможете выяснить, как обернуть это в объект. Выстрел в темноте, но я предполагаю, что callback(null, {json}) может сработать.

person xavdid    schedule 28.04.2021