Проблема с настройкой адресата ответа формы (возможно, проблема с функцией getID())


ПРИМЕЧАНИЕ. Эта проблема была доведена до сведения разработчиков 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());
}

И да, на самом деле я все еще получаю то же сообщение об ошибке, а также идентификатор электронной таблицы при печати в журнале не соответствует идентификатору на панели навигации браузера.

Я был бы признателен за некоторое понимание природы этой проблемы, или если я что-то здесь делаю неправильно (хотя точно такой же код работал раньше, поэтому я склонен так думать). Если вы можете предложить какую-либо помощь, это было бы здорово, я не могу двигаться дальше, не решая эту проблему.


person eclement    schedule 24.02.2014    source источник
comment
Какая-то проблема здесь! До сегодняшнего утра мои сценарии работали нормально, а сегодня я также получаю сообщение об ошибке. В системе отслеживания проблем Google уже есть открытая проблема: code.google.com/ p/google-apps-script-issues/issues/   -  person Mani    schedule 25.02.2014


Ответы (1)