google-apps-script - 如何从谷歌表格获取数据到我的 Gmail 插件
问题描述
我试图从谷歌表格中获取一些数据并将其显示在 Gmail 插件中。当我尝试运行 getValue() 函数时,出现如下错误。
您无权调用 openById(第 29 行,文件“代码”)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 插件上。如果任何人都可以提供正确的代码狙击,这将非常有帮助。
解决方案
我认为需要将使用电子表格的范围添加到清单的“oauthScopes”中。所以请https://www.googleapis.com/auth/spreadsheets
在appsscript.json
. 然后再试一次。
如果这不起作用,我很抱歉。
推荐阅读
- javascript - 为什么多次调用 Array.fill 会影响未引用的数组?
- javascript - 在javascript中发布后如何获取表单数据
- javascript - 如何设置磁贴服务器上可用的最大缩放?
- android - 有没有办法让所有设备都具有相同的规模?
- javascript - 从对象中过滤属性的更简洁方法
- python-3.x - 打开之前在 Tkinker 中被破坏的窗口
- c# - 将powershell脚本的输出绑定到asp.net c#中的gridview
- java - GCP:无法从 Java 尝试 Cloud Billing Account API
- javascript - 我想在javascript NODE.js中以同步方式检查URL是否存在
- javascript - 如何摆脱 JSON 中的 '[' 和 ']',如下所示在 NodeJS 中