我正在尝试将部分小部件动态添加到newSelectionInput OnChangeAction(已添加卡)上的Card / CardService中。
我没有在Google上看到任何文档,如何实现此行为。
有人可以指导我找到正确的文档或如何执行此操作。
谢谢
我正在创建一个 Gmail 插件。以下参考页面显示 - https://developers.google.com/gmail/add-ons/reference/
“Gmail 插件是使用 Apps 脚本及其提供的许多服务构建的。构建插件时,您可以使用任何 Apps 脚本服务”
基本上,我希望在单击 Gmail 插件中的按钮时弹出小屏幕。
截至目前,我已在我的部分中添加了一个按钮,如下所示,并将其绑定到操作处理程序“htmltest”:-
var htmlTest = CardService.newAction().setFunctionName('htmlTest');
var button = CardService.newTextButton().setText("htmlTest").setOnClickAction(htmlTest);
section.addWidget(button);
Run Code Online (Sandbox Code Playgroud)
这就是 htmlTest 的样子:-
function htmlTest(e){
return HtmlService.createHtmlOutputFromFile('doubleCheck');
}
Run Code Online (Sandbox Code Playgroud)
这是我希望弹出的 doubleCheck.html 文件:-
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Hello, World!
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是当我单击该按钮时,它会出现运行时错误:- 标记中缺少必填字段:
创建 Gmail 时如何使用 HtmlService 的任何线索
我尝试记录用户的电子邮件以进行调试。我用了Session.getActiveUser().getEmail()。我收到以下错误。
例外:您无权调用 Session.getActiveUser.getEmail() 所需权限: https: //www.googleapis.com/auth/userinfo.email
因此我将https://www.googleapis.com/auth/userinfo.email范围添加到我的插件中。现在我收到以下错误
该脚本无权获取活动用户的身份。
但是,如果我在我的帐户(Gsuite)或我们域中的任何其他用户上运行它,我不会看到错误。仅供参考:我是该插件的所有者。
我缺少任何范围吗?
我是 Google Addon 开发的新手。我一直在使用 Google Apps 脚本开发 Gmail 插件。
我当前的要求是从在同一浏览器(在不同选项卡中)中进行身份验证的网站中检索一些信息。该网站支持不同的身份验证类型(SAML SSO、Active Directory 等)并需要多因素身份验证。因此,不可能(或不切实际)从 Apps 脚本执行所有类型的身份验证。
相反,我的想法是让用户手动登录(而不是插件脚本本身)到站点(使用为用户配置的任何身份验证)。登录操作会导致身份验证 cookie 存储在浏览器中。我想在这个插件脚本中使用这些 cookie 来执行 API。
这适用于 chrome 扩展。
所以,我的问题是,是否可以使用 Apps 脚本中的 URL 名称在浏览器中检索存储的 cookie?
正如标题所述,是否有人成功为通过gmail api发送的电子邮件启用了 3 种安全机制?
目前,我通过 gmail-api (http) 发送的所有电子邮件均已被收件人成功接收,但没有任何安全标记。这适用于我们的 chrome 扩展和 gmail-addon。
我用谷歌脚本创建了简单的gmail插件,因为我在这里很挣扎,
当我们执行某些操作时如何获取textinput值,我检查了文档,我找不到任何方法
我试过以下代码,
var card = CardService.newCardBuilder();
card.setHeader(CardService.newCardHeader().setTitle("Login Here"));
var section = CardService.newCardSection()
var cleint_id_Input = CardService.newTextInput()
.setFieldName("client_id")
.setTitle("Please enter clinet id")
var username_Input = CardService.newTextInput()
.setFieldName("username")
.setTitle("Please enter username")
var password_Input = CardService.newTextInput()
.setFieldName("password")
.setTitle("Please enter password")
section.addWidget(cleint_id_Input)
section.addWidget(username_Input)
section.addWidget(password_Input)
Logger.log("Input Value%s",cleint_id_Input)
//Login action button
var action = CardService.newAction().setFunctionName('loginCallback');
section.addWidget(CardService.newTextButton().setText('Login').setOnClickAction(action))
card.addSection(section)
Run Code Online (Sandbox Code Playgroud)
我需要"loginCallback"函数中的inputText值
提前致谢
我正在创建一个 Gmail 插件,我的疑问是如何在 Google 端保存一些安全和机密的信息,以便稍后在我的代码中使用它。Google 是否提供某种安全存储机制?
google-api google-apps-script google-apps-marketplace gmail-addons google-workspace
如何在 Gmail 插件中将卡片标题标题设为粗体?我尝试了这个,但它不起作用:
function mainCardBuild(content) {
return CardService.newCardBuilder()
.setHeader(
CardService.newCardHeader().setTitle('<b> MY TITLE </b>')) //doesn`t work bold
.addSection(content)
.build();
}
Run Code Online (Sandbox Code Playgroud)
我确信我们有机会做到这一点,因为我在 Slack Add-on 中看到了它。 Slack 中的粗体卡标题
google-apps google-apps-script google-apps-script-addon gmail-addons
类似于:在JavaMail中使用message.getFrom()时仅显示电子邮件地址,但无法应用该解决方案。
尝试在 Google AppScript 上使用Gmail 的mailMessage.getFrom() 。
默认脚本:
function loadAddOn(event) {
var accessToken = event.messageMetadata.accessToken;
var messageId = event.messageMetadata.messageId;
GmailApp.setCurrentMessageAccessToken(accessToken);
var mailMessage = GmailApp.getMessageById(messageId);
var from = mailMessage.getFrom();
var openDocButton = CardService.newTextButton()
.setText("open docs")
.setOpenLink(
CardService.newOpenLink().setUrl("https://developers.google.com/gmail/add-ons/"));
var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader().setTitle("My First Gmail Addon"))
.addSection(CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText("The email is from: " + from))
.addWidget(openDocButton))
.build();
return [card];
}
Run Code Online (Sandbox Code Playgroud)
var from = mailMessage.getFrom();
这将返回发件人的姓名,而不是实际的电子邮件地址。尝试getFrom().getAddress()尝试上面提到的帖子,但显然它不起作用,getFrom()返回了一个字符串。
任何想法如何访问包含发件人元数据的数据或字典数组,以便我可以自己提取电子邮件、姓名等?
我正在构建一个 Gmail 插件,它可以创建一张只有一个表单按钮的卡片。单击后,我希望该按钮触发一个功能,将打开的电子邮件的内容发送到外部 API。
到目前为止,我有这样的事情:
function createCard(event) {
var currentMessage = getCurrentMessage(event).getBody();
var section = CardService.newCardSection();
var submitForm = CardService.newAction()
.setFunctionName('callAPI');
var submitButton = CardService.newTextButton()
.setText('Submit')
.setOnClickAction(submitForm);
section.addWidget(CardService.newButtonSet()
.addButton(submitButton));
var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle('Click this button'))
.addSection(section)
.build();
return [card];
}
function callAPI(event) {
var payload = { "msg": msg }; // msg is the parameter I need to get from the function call
var options = {
"method" : "POST",
"contentType": "application/json",
"payload" : JSON.stringify(payload),
"followRedirects" : true, …Run Code Online (Sandbox Code Playgroud)