如何从谷歌表格到我的Gmail插件获取数据

时间:2018-05-08 08:10:05

标签: google-apps-script gsuite gmail-addons

我尝试从google工作表中获取一些数据并将其显示在Gmail插件中。 当我试图运行getValue()函数时,我收到如下错误。

  

您无权调用openById(第29行,文件“Code”)Dismiss

这是我的code.gs文件代码

     function createWidgetCard() {
   return CardService
      .newCardBuilder()
      .setHeader(
          CardService.newCardHeader()
              .setTitle('Widget demonstration')
              .setSubtitle('Check out these widgets')
              .setImageStyle(CardService.ImageStyle.SQUARE)
              .setImageUrl(
                  'https://www.example.com/images/headerImage.png'))
      .addSection(
           CardService.newCardSection()
               .setHeader('Simple widgets')  // optional
               .addWidget(CardService.newTextParagraph().setText(
                   'These widgets are display-only. ' +
                   'A text paragraph can have multiple lines and ' +
                   getValue()))
               .addWidget(CardService.newImage().setImageUrl(
                   'https://www.example.com/images/mapsImage.png')))
      .addCardAction(CardService.newCardAction().setText('Gmail').setOpenLink(
          CardService.newOpenLink().setUrl('https://mail.google.com/mail')))
      .build();
 }



//get data from sheet
function getValue(){
   var ss = SpreadsheetApp.openById("181tnith14lu8ttAvtqsU3gHi32-UjcrPqH5Pjuenk5A");
   var sheet = ss.getSheets()[0];
   var lastRaw = sheet.getLastRow();
   var text = sheet.getRange(lastRaw, 3.0).getValue();
   Logger.log("text");
   return text;
}

这是我的清单文件代码(appscript.json)

     {
  "oauthScopes": [
    "https://www.googleapis.com/auth/gmail.addons.execute",
    "https://www.googleapis.com/auth/gmail.readonly",
    "https://www.googleapis.com/auth/script.storage",
    "https://www.googleapis.com/auth/script.external_request"    
  ],
  "gmail": {
    "name": "Finetech Addon",
    "logoUrl": "https://www.gstatic.com/images/icons/material/system/2x/bookmark_black_24dp.png",
    "contextualTriggers": [{
      "unconditional": {
      },
      "onTriggerFunction": "createWidgetCard"
    }],
    "openLinkUrlPrefixes": [
      "https://mail.google.com/"
    ],
    "primaryColor": "#4285F4",
    "secondaryColor": "#4285F4",
    "version": "TRUSTED_TESTER_V2"
  }
}

我的要求是访问工作表并获取一些数据并将其显示在Gmail插件上。如果任何人都可以提供正确的代码狙击,这可能会非常有用。

1 个答案:

答案 0 :(得分:0)

我认为使用电子表格的范围需要添加到" oauthScopes"清单。所以请将https://www.googleapis.com/auth/spreadsheets添加到" oauthScopes"在appsscript.json。然后再试一次。

如果这不起作用,我很抱歉。