如何为Gmail应用程序使用访问令牌?

问题描述

我正在尝试创建Gmail附加范围access token,我目前的目标是以某种方式在电子表格中获取所选邮件的附件和内容。

function onGmailDo(e) {
  var sheet = SpreadsheetApp.openByUrl(
    "https://docs.google.com/spreadsheets/d/14qsqQqHWQyVdbK-0LyBSac6eNqVZB1C0QxjE4xeBK_o/edit#gid=0"
  );

  var accessToken = e.messageMetadata.accessToken;
  var messageId = e.messageMetadata.messageId;
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);

  var threads = GmailApp.getInboxThreads(0,100);

  var attachmentDetails = [];
  var attachments = mailMessage.getAttachments();

  for (var k = 0; k < attachments.length; k++) {
    attachmentDetails.push(
      "${attachments[k].getName()} :${attachments[k].getSize()}"
    );
  }
  sheet.appendRow([
    mailMessage.getSubject(),mailMessage.getDate(),mailMessage.getFrom(),attachmentDetails.join("\n"),]);
}

解决方法

缺少一些有用的服务。另外,出于授权目的,我还必须在清单文件中包括以下范围。 范围:“ https://mail.google.com/”,“ https://www.googleapis.com/auth/spreadsheets” 更正的代码:

function onGmailDo(e) {
  console.log(e);
  var text = e.parameters.text;
  var isHomepage = e.parameters.isHomepage === 'true';
  var card = createCard(text,isHomepage);
  var navigation = CardService.newNavigation()
      .updateCard(card);
  var actionResponse = CardService.newActionResponseBuilder()
      .setNavigation(navigation);
      var sheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/14qsqQqHWQyVdbK-0LyBSac6eNqVZB1C0QxjE4xeBK_o/edit#gid=0');

  var accessToken = e.messageMetadata.accessToken;
  var messageId = e.messageMetadata.messageId;
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);


  var attachmentDetails = [];
  var attachments = mailMessage.getAttachments();
  
    for (var k = 0; k < attachments.length; k++) {
    
       attachmentDetails.push(attachments[k].getName());
       attachmentDetails.push(attachments[k].getSize());
    }
    sheet.appendRow([mailMessage.getSubject(),mailMessage.getDate(),mailMessage.getFrom(),attachmentDetails.join('\n')]);
    
  return actionResponse.build();
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...