2017-08-31 77 views
0

我目前正在嘗試使用腳本編輯器將我們訂閱者列表中預定義的自動更新段內的訂戶總數的mailchimp數據提取到Google工作表中。然而,我必須承認,我對這方面的知識不是很瞭解,並且嘗試過不同的方式來定製這些代碼,但沒有運氣。我曾看過有關這方面的Mailchimps文檔,但似乎無法得到這項工作。google腳本編輯器mailchimp - 提取段訂閱者

function chimpSubscribers() { 
var API_KEY = ''; // MailChimp API Key 
var LIST_ID = ''; // MailChimp List ID 
var SEGMENT_ID =''; //Mailchimp Segment ID 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName("Subscribers"); 

var dc = API_KEY.split('-')[1]; 
var api = 'https://'+ dc +'.api.mailchimp.com/3.0'; 

    var memberList = '/lists/'+LIST_ID 
    var memberSegment = '/segments/'+SEGMENT_ID 
    var apiCall = function(endpoint){ 
    options = {"headers": {"authorization": 'apikey '+API_KEY}}; 
     apiResponseMembers = UrlFetchApp.fetch(api+endpoint,options); 
     json = JSON.parse(apiResponseMembers); 
     return json 
    } 

var members = apiCall ("memberList", "memberSegment"); 
if (members) { 

    var d = new Date(); 
    var member_count = members.stats.member_count; 
    var unsubscribe_count = members.stats.unsubscribe_count; 
    var open_rate = members.stats.open_rate; 
    var click_rate = members.stats.click_rate; 

    var report = [d, member_count, unsubscribe_count, open_rate, click_rate,]; 

Logger.log(report); 

// Clear MailChimp data in Spreadsheet 
    sheet.clear(); 
// Append MailChimp data to Spreadsheet 
    sheet.appendRow(["Date", "Total Subscribers", "Unsubscribe Count", "Open Rate", "Click Rate"]); 
    sheet.appendRow(report); 
} 
} 

回答

0

想通了 - 爲別人可能需要它的代碼如下:

function chimpSubscribers() { 
var API_KEY = ''; // MailChimp API Key 
var LIST_ID = ''; // MailChimp List ID 
var SEGMENT_ID = ''; // Mailchimp Segment ID 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName("Subscribers"); 

var dc = API_KEY.split('-')[1]; 
var api = 'https://'+ dc +'.api.mailchimp.com/3.0'; 

var memberList = '/lists/'+LIST_ID +'/segments/'+ SEGMENT_ID 
    options = {"headers": {"authorization": 'apikey '+API_KEY}}; 
    var apiCall = function(endpoint){ 
     apiResponseMembers = UrlFetchApp.fetch(api+endpoint,options); 
     json = JSON.parse(apiResponseMembers); 
     return json 
    } 

var members = apiCall(memberList); 
if (members) { 

    var d = new Date(); 
    var member_count = members.member_count; 

    var report = [d,member_count,]; 

Logger.log(report); 

// Clear MailChimp data in Spreadsheet 
    sheet.clear(); 
// Append MailChimp data to Spreadsheet 
    sheet.appendRow(["Date", "Total Subscribers"]); 
    sheet.appendRow(report); 
} 
}