Javascript 如何在gmail插件上获取textinput值
我创建了一个带有表单的Gmail插件。 在这个表单中,我有输入,但在我的脚本中,我找不到如何检索变量中输入的值。 当你点击一封电子邮件并用邮件的元数据和联系信息填写表单输入时,下面的代码会在Gmail收件箱中打开一个侧栏。如果联系人不存在,则用户可以通过输入发件人的姓名(从电子邮件中检索电子邮件地址)来创建联系人。 但我不知道如何恢复用户输入的信息 这是我的剧本:Javascript 如何在gmail插件上获取textinput值,javascript,google-apps-script,gmail-api,google-contacts-api,gmail-addons,Javascript,Google Apps Script,Gmail Api,Google Contacts Api,Gmail Addons,我创建了一个带有表单的Gmail插件。 在这个表单中,我有输入,但在我的脚本中,我找不到如何检索变量中输入的值。 当你点击一封电子邮件并用邮件的元数据和联系信息填写表单输入时,下面的代码会在Gmail收件箱中打开一个侧栏。如果联系人不存在,则用户可以通过输入发件人的姓名(从电子邮件中检索电子邮件地址)来创建联系人。 但我不知道如何恢复用户输入的信息 这是我的剧本: 函数buildAddOn(e){ //Activer les extensions complémentailes de Gmai
函数buildAddOn(e){
//Activer les extensions complémentailes de Gmail
var accessToken=e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId=e.messageMetadata.messageId;
var message=GmailApp.getMessageById(messageId);
var emailAddress=recupEmail(message.getFrom(),“”);//电子邮件地址,电子邮件地址,电子邮件地址
var objet=message.getSubject();
var contact=ContactsApp.getContact(电子邮件地址);
var contactNom;
var contactPrenom;
如果(联系人!=null){
contactPrenom=contact.getFamilyName();
contactNom=contact.getFullName().replace(contactPrenom“”);
}否则{
contactNom='';
contactPrenom='';
}//否则
var head=‘催交人’;
var labelNom=‘Nom’;
var labelPrenom=‘Prenom’;
var labelEmail='Adresse e-mail';
var labelObjet='Objet';
var labelMessage='Message';
var action=CardService.newAction().setFunctionName('createContact');
var section=CardService.newCardSection();
节.集管头(头);
section.addWidget(CardService.newtedInput().setFieldName('nom').setTitle(labelNom).setValue(contactPrenom));
section.addWidget(CardService.newtedInput().setFieldName('prenom').setTitle(labelPrenom).setValue(contactNom));
if(contact==null){
section.addWidget(CardService.newTextButton().setText('Ajouter au contacts').setOnClickAction(action));
}
section.addWidget(CardService.newtedInput().setFieldName('mail').setTitle(labelEmail).setValue(emailAddress));
section.addWidget(CardService.newtedInput().setFieldName('objet').setTitle(labelObjet.setValue(objet));
var card=CardService.newCardBuilder()
.addSection(section)
.build();
返回[卡];
}
功能(从、首次登场、财务){
var结果=来自.split(首次亮相)[1]。split(fin)[0];
返回结果;
}
函数creatContact(){
/*
var givenName=??;
var familyName=??;
var电子邮件=??;
*/
ContactsApp.createContact(givenName、familyName、电子邮件)
}
我没有广泛使用Gmail插件,但这里有一部分我用来将笔记保存在电子表格中,另一个Web应用程序将其用作个人助理。它允许用户选择注释类型(其中有许多注释),然后输入注释并将其加载到电子表格中
function buildAddOn(e) {
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId = e.messageMetadata.messageId;
var cards = [];
cards.push(buildGetNotesTypesSelectionInput());
return cards;
}
function buildGetNotesTypesSelectionInput(){
var card=CardService.newCardBuilder();
card.setHeader(CardService.newCardHeader().setTitle('Don\'t Forget - Notes'));
var section=CardService.newCardSection().setHeader('Notes');
var typeSelect=CardService.newSelectionInput()
.setType(CardService.SelectionInputType.DROPDOWN)
.setTitle('Select Note Type')
.setFieldName('Note_Type');
typeSelect.addItem('', '', true);
var optsA=getNoteTypes();
Logger.log('\nselect1 optsA:\n');
for(var i=0;i<optsA.length;i++){
typeSelect.addItem(optsA[i], optsA[i],false);
Logger.log('\noptsA[%s]=%s',i,optsA[i]);
}
//typeSelect.setOnChangeAction(CardService.newAction().setFunctionName('select1Change'));
section.addWidget(typeSelect);
var commentText=CardService.newTextInput()
.setFieldName('Comments')
.setMultiline(true)
.setTitle('Comments');
section.addWidget(commentText);
var action=CardService.newAction().setFunctionName('saveNote');
var saveButton=CardService.newTextButton()
.setText('Save')
.setOnClickAction(action);
section.addWidget(saveButton);
card.addSection(section);
return card.build();
}
function saveNote(e){
var row=[];
var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd,yyyy HH:mm:ss");
row.push(ts,e.formInput.Note_Type,e.formInput.Comments,Session.getActiveUser().getEmail());
var ss=SpreadsheetApp.openById(gDefault.DontForgetId);
var sh=ss.getSheetByName('Notes');
sh.appendRow(row);
return CardService.newCardBuilder()
.setHeader(CardService.newCardHeader().setTitle('Note Saved'))
.addSection(CardService.newCardSection().addWidget(CardService.newTextParagraph().setText(Utilities.formatString('TimeStamp: %s\nNote Type: %s\nNote: %s\nEmail: %s\n', ts,e.formInput.Note_Type,e.formInput.Comments,Session.getActiveUser().getEmail()))))
.build();
}
function getNoteTypes(){
var ss=SpreadsheetApp.openById(gDefault.DontForgetId);
var sh=ss.getSheetByName('Options');
var rg=sh.getDataRange();
var vA=rg.getValues();
var oA=[];
for(var i=1;i<vA.length;i++){
oA.push(vA[i][0]);
}
return oA;
}
函数buildAddOn(e){
var accessToken=e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId=e.messageMetadata.messageId;
var卡=[];
push(buildGetNotesTypeSelectionInput());
回程卡;
}
函数buildGetNotesTypeSelectionInput(){
var card=CardService.newCardBuilder();
setHeader(CardService.newCardHeader().setTitle('Don't忘记-Notes');
var section=CardService.newCardSection().setHeader('Notes');
var typeSelect=CardService.newselectionput()
.setType(CardService.SelectionInputType.DROPDOWN)
.setTitle('选择注释类型')
.setFieldName('Note_Type');
typeSelect.addItem(“”,,,true);
var optsA=getNoteTypes();
Logger.log('\n选择1 optsA:\n');
对于(var i=0;i将联系人功能签名更改为
createContact(e) {
..
}
e参数将填充所有您需要的东西。消息元数据、表单输入等。也请参考此。TY Hari。这就是我发现的。事件对象结构参考: