Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要创建一个保存google apps脚本的函数(或修复原始函数)_Javascript_Google Apps Script - Fatal编程技术网

Javascript 需要创建一个保存google apps脚本的函数(或修复原始函数)

Javascript 需要创建一个保存google apps脚本的函数(或修复原始函数),javascript,google-apps-script,Javascript,Google Apps Script,我刚刚开始我的JS之旅。目前正在尝试更新Google Sheets脚本中的MailChimp API调用。问题是,脚本(最初在此处找到:)仅在保存Google脚本编辑器时有效。我想创建一个JavaScript GAS函数,它能够每天运行,从而保存脚本编辑器,从而更新MailChimp计数。或者其他一些解决方案,可以让这一点起作用 谷歌脚本功能: function getSubscribersCount(api_key, list_id) { var API_KEY = api_key;

我刚刚开始我的JS之旅。目前正在尝试更新Google Sheets脚本中的MailChimp API调用。问题是,脚本(最初在此处找到:)仅在保存Google脚本编辑器时有效。我想创建一个JavaScript GAS函数,它能够每天运行,从而保存脚本编辑器,从而更新MailChimp计数。或者其他一些解决方案,可以让这一点起作用

谷歌脚本功能:

function getSubscribersCount(api_key, list_id) {
  var API_KEY = api_key;
  var LIST_ID = list_id;

  var dc = '(my mailchimp API Key goes here)'.split('-')[1];
  var api = 'https://'+ dc +'.api.mailchimp.com/2.0';
  var membersPath = '/lists/members.json';

  // MC api-specific parameters
  var payload = {
    "apikey": API_KEY,
    "id": LIST_ID
  }; 

  // GAS specific parameters: 
  var params = {
    "method": "POST",
    "muteHttpExceptions": true,
    "payload": payload
  };

  var apiCall = function(endpoint){
    var apiResponse = UrlFetchApp.fetch(api+endpoint, params);
    var json = JSON.parse(apiResponse);
    return json;
  };
var members = apiCall(membersPath);
  return members.total;
}

我是否可以添加一个函数来保存该函数,或者模拟CMD+s键盘事件?

与其将公式写入电子表格来调用脚本,不如编写另一个函数来直接修改电子表格

function updateSubscriberCount() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(),
      sheet = ss.getSheetByName("Sheet1"),
      api_key = sheet.getRange("B1").getValue(),
      list_id = sheet.getRange("C1").getValue();
  sheet.getRange("A1").setValue(getSubscribersCount(api_key, list_id));
}
然后单击“编辑/当前项目的触发器”,并设置计时器以定期运行该功能。 但是,您必须至少手动运行该函数一次,才能授予脚本所需的权限