首页 > 解决方案 > doGet 在谷歌插件脚本文件上失败

问题描述

我正在尝试使用电子邮件中的内联图像来跟踪电子邮件状态。

为了获得响应,我正在使用以下代码。

// handles the get request to the server
function doGet(e) {
  Logger.log(e.parameter); 
  var method = e.parameter['method'];
  switch (method) {
    case 'track':
      var email = e.parameter['email'];
      updateEmailStatus(email);
    default:
      break;
  }
}


    function updateEmailStatus(emailToTrack) {
  
  // get the active spreadsheet and data in it
  var id = SpreadsheetApp.getActiveSpreadsheet().getId();
  var sheet = SpreadsheetApp.openById(id).getActiveSheet();
  var data = sheet.getDataRange().getValues();
  
  // get headers
  var headers = data[0];
  var emailOpened = headers.indexOf('status') + 1;
  
  // declare the variable for the correct row number
  var currentRow = 2;
  
  // iterate through the data, starting at index 1
  for (var i = 1; i < data.length; i++) {
    var row = data[i];
    var email = row[0];
    
    if (emailToTrack === email) {      
      // update the value in sheet
      sheet.getRange(currentRow, emailOpened).setValue('opened');
      break;
    }
    currentRow++;
  }
} 

这是单子

它适用于独立文件,但不适用于插件脚本项目。有没有办法使用应用程序脚本追踪发送电子邮件?对此问题的任何帮助将不胜感激。谢谢

标签: emailgoogle-apps-scriptgoogle-sheetstrace

解决方案


我已经解决了这个问题。我稍微更改了代码并创建了一个新草稿,因为现有草稿中添加了多个内联图像。

变化就在这里

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet = ss.getSheetByName('Email_Status');

经过这一些更改后,我将其部署为新的 webapp 并开始工作。感谢您的贡献


推荐阅读