ПРИМЕЧАНИЕ. Эта проблема была доведена до сведения разработчиков Google, и они, по-видимому, пытаются ее решить. Решения пока нет, см. здесь, если эта проблема касается и вас. !
Я некоторое время работал с небольшим проектом в сценарии Google, я запустил свой сценарий и получил сообщение «Не удалось установить место назначения ответа. Проверьте идентификатор места назначения и повторите попытку». ошибка. Это произошло в разделе моего кода, где генерируются различные формы с соответствующей электронной таблицей ответов, ошибка возникает при первом вызове .setDestination():
responseSheet = SpreadsheetApp.create('ConflictRespData for ' + activeRef.refereePi);
moveToFolder(DocsList.getFileById(responseSheet.getId()), conflictFolder);
Logger.log(responseSheet.getId());
conflForm = FormApp.create('Conflict Declerations for ' + activeRef.refereePi);
moveToFolder(DocsList.getFileById(conflForm.getId()), conflictFolder);
conflForm.setDescription(FORM_DESCRIPTION)
.setConfirmationMessage(CONFIRMATION_MESSAGE)
.setAllowResponseEdits(false)
.setShowLinkToRespondAgain(false)
conflForm.setDestination(FormApp.DestinationType.SPREADSHEET, responseSheet.getId());
мой код работал нормально в последний раз, когда я использовал его 2 дня назад и запускал его сегодня без редактирования чего-либо. Теперь я получаю эту ошибку. Это заставляет меня поверить, что это ошибка на стороне Google, а не в моем собственном синтаксисе.
Я использовал Logger для печати .getId() листа ответов после его создания и заметил, что эта строка не соответствует строке, отображаемой в адресной строке, когда я перехожу к электронной таблице через свой Google Диск, однако вставляя этот идентификатор на место фактического идентификатора приводит меня к электронной таблице. У меня сложилось впечатление, что идентификатор должен быть уникальным.
Я создал новый скрипт, который (по сути) является точной копией примера скрипта на странице . Страница формы класса в документации GAS, чтобы подтвердить мое подозрение, что это проблема на стороне Google:
function myFunction() {
var form = FormApp.openById('1ib3j66ogj3NgozVDeYxhNdqm6PaajUhN3dk24BXcd7s');
var ss = SpreadsheetApp.create('Spreadsheet Name');
// Update form properties via chaining.
form.setTitle('Form Name')
.setDescription('Description of form')
.setConfirmationMessage('Thanks for responding!')
.setAllowResponseEdits(true)
.setAcceptingResponses(false);
// Update the form's response destination.
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
}
И да, на самом деле я все еще получаю то же сообщение об ошибке, а также идентификатор электронной таблицы при печати в журнале не соответствует идентификатору на панели навигации браузера.
Я был бы признателен за некоторое понимание природы этой проблемы, или если я что-то здесь делаю неправильно (хотя точно такой же код работал раньше, поэтому я склонен так думать). Если вы можете предложить какую-либо помощь, это было бы здорово, я не могу двигаться дальше, не решая эту проблему.