Попытка получить активный идентификатор сообщения электронной почты - PullRequest
0 голосов
/ 20 марта 2020

Я много читал, чтобы найти ответ самостоятельно, прежде чем публиковать здесь, но я не знаю, что мне не хватает, я пытаюсь сопоставить идентификатор сообщения электронной почты со значением в электронной таблице Google, У меня есть это 2 функции:

function getExpenseDescription(message) { 
  var id = message.getId();
  return id;
}

function getReceivedDate(message){
  var app = SpreadsheetApp;
  // seleccionamos el id de la tabla que se desea utilizar
  var ss = app.openById("google sheet id");
  // seleccionamos la hoja con la que deseamos trabajar
  var sheet = ss.getSheetByName("Respuestas de formulario 1");
  // seleccionamos todos los datos de la tabla 
  var data = sheet.getDataRange().getValues();
// var id = "1620cc3997025bf5";
  var id = message.getId();
  Logger.log(id);
  for(var i = 0; i < data.length;i++){
    if(data[i][73] == id){ 
      Logger.log((i+1))
      return id = i+1;
    }
  }

первая функция возвращает идентификатор сообщения, но когда я использую тот же message.getId () во втором говорит, что не может получить идентификатор неопределенного

вот другой код, где вы получаете токен для доступа к Gmail

function getContextualAddOn(event) {
  var message = getCurrentMessage(event);
  var prefills = [getReceivedDate(message),
                  getLargestAmount(message),
                  getExpenseDescription(message),
                  getSheetUrl()];
  var card = createExpensesCard(prefills);

  return [card.build()];
}

/**
 * Retrieves the current message given an action event object.
 * @param {Event} event Action event object
 * @return {Message}
 */
function getCurrentMessage(event) {
  var accessToken = event.messageMetadata.accessToken;
  var messageId = event.messageMetadata.messageId;
  GmailApp.setCurrentMessageAccessToken(accessToken);
  return GmailApp.getMessageById(messageId);
}



...