Я только изучаю JavaScript, поэтому, пожалуйста, потерпите меня. Я пытаюсь вернуть данные в массиве, созданном ниже, вызывая API Mailchimp для результатов автоматизации и каждой кампании в этой автоматизации. Я сделал это успешно, но кампании не в нужном порядке. Я знаю, что могу использовать «положение», чтобы упорядочить их должным образом, но я не могу понять, как отсортировать массив по этой позиции и вывести их правильно. Кто-нибудь может помочь?
var API_KEY = 'API KEY';
var dc = API_KEY.split('-')[1];
var workarr = [ ['automationID1'], ['automationID2'], ['automationID3'];
var sheet = SpreadsheetApp.getActiveSpreadsheet();
function mailchimpAutoCampaign() {
for (var j = 0; j < workarr.length; j++) {
// URL and params for the Mailchimp API Automation
var root = 'https://'+dc+'.api.mailchimp.com/3.0/automations/'+ workarr[j];
var endpoint = '/emails?count=19;'
// parameters for url fetch
var params = {
'method': 'GET',
'muteHttpExceptions': true,
'headers': {
'Authorization': 'apikey ' + API_KEY
}
};
try {
// call the Mailchimp API
var response = UrlFetchApp.fetch(root+endpoint, params);
var data = response.getContentText();
var json = JSON.parse(data);
var d = new Date();
// get just automation campaign data
var campaigns = json['emails'];
// blank array to hold the automation campaign data for Sheet
var campaignData = [];
// Add the campaign data to the array
for (var i = 0; i < campaigns.length; i++) {
var c=campaigns[i];
// put the automation campaign data into a double array for Google Sheets
campaignData.push([
//i,
d,
campaigns[i]["id"],
campaigns[i]["settings"]["title"],
campaigns[i]["position"],
campaigns[i]["emails_sent"],
(campaigns[i]["report_summary"]) ? campaigns[i]["report_summary"]["opens"] : 0,
(campaigns[i]["report_summary"]) ? campaigns[i]["report_summary"]["unique_opens"] : 0,
(campaigns[i]["report_summary"]) ? campaigns[i]["report_summary"]["open_rate"] : 0,
(campaigns[i]["report_summary"]) ? campaigns[i]["report_summary"]["clicks"] : 0,
(campaigns[i]["report_summary"]) ? campaigns[i]["report_summary"]["subscriber_clicks"] : 0,
(campaigns[i]["report_summary"]) ? campaigns[i]["report_summary"]["click_rate"] : 0
]);
}
// Log the campaignData array
Logger.log(campaignData);
var text = String(campaignData);
Logger.log(text);
var camps = text.split(",");
Logger.log(camps);
// output the numbers to the sheet
sheet.appendRow(camps);
}
catch (error) {
// arrays errors
Logger.log(error);
};
}
}