В одной таблице Google есть несколько листов, некоторые из которых связаны с формами Google.Я попытался использовать этот пример , но не смог найти связанный лист.В одном случае он показывает ссылку на форму без какого-либо домена, но sheet.getFormUrl () возвращает ссылку с доменом и с идентификатором другой формы!Когда я использовал эту ссылку, она была заменена в браузере на первую ссылку (без домена).В таком случае как найти связанный лист и почему ссылки разные?!
У меня есть обработчик события onFormSubmit (на стороне формы):
/**
* This function is retrieved by onFormSubmit Trigger on the Form side (not on Spreadsheet side)
*
* /11063187/kak-vklychit-razresheniya-dlya-formapp
* View / Show Manifest file:
* Add:
* "oauthScopes": [
* "https://www.googleapis.com/auth/forms",
* "https://www.googleapis.com/auth/spreadsheets"
* ]
*/
function onFormSubmit(event) {
try {
Logger.log(JSON.stringify(event));
const sheet = getLinkedSheet(event);
if(sheet) {
Logger.log(sheet.getName());
}
} catch (err) {
Logger.log(err.toString());
}
}
function getLinkedSheet(event) {
// Get the form to which this script is bound.
//var form = FormApp.getActiveForm();
//OR:
var form = event.source;
var destinationId = form.getDestinationId();
//No domain: https://docs.google.com/forms/d/e/**[ID1]**/viewform <------------- A
var formURL = form.getPublishedUrl();
var formID = form.getId();
Logger.log("Form's URL:" +formURL);
var ss = SpreadsheetApp.openById(destinationId);
var sheets = ss.getSheets();
var match = null;
for(var i=0; i<sheets.length; i++) {
//With domain: https://docs.google.com/a**/[DOMAIN]**/forms/d/**[ID2]**/viewform <----------- B
Logger.log(JSON.stringify( sheets[i].getFormUrl() ) );
if(sheets[i].getFormUrl() == formURL) {
match = sheets[i]; //<----------------------- NO MATCHES FOUND
}
}
Logger.log(JSON.stringify(match)); //null
return match;
}