Разрешить загрузку файлов с Google Drive только после отправки формы Google - PullRequest
0 голосов
/ 28 марта 2020

У меня есть блог, построенный с использованием Jekyll и размещенный на Github. В моих сообщениях в блоге иногда мне нужно поделиться некоторыми загружаемыми файлами, хранящимися на диске Google.

В настоящее время, я хочу знать, есть ли способ разрешить загрузку файлов с Google Drive только после заполнения и отправки формы Google.

Спасибо

Ответы [ 2 ]

1 голос
/ 30 марта 2020

С помощью скрипта Apps вы можете создать функцию, которая будет запускаться при отправке формы и выполнять следующие действия:

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

Чтобы эта функция работала при отправке формы, необходимо установить триггер onFormSubmit. Чтобы сделать это, в сценарии, связанном с вашей формой, создайте функцию (назовем ее shareLinkOnFormSubmit) и установите триггер: либо вручную , либо программно (путем копирования и запуска). эта функция - вы должны изменить идентификатор формы и имя функции).

  • Далее функция shareLinkOnFormSubmit может быть чем-то похожим на пример ниже - проверьте встроенные комментарии:
function shareLinkOnFormSubmit(e) {
  var formResponse = e.response;
  var email = formResponse.getRespondentEmail(); // Get form respondent email address
  var fileId = "your-file-id"; // Get file id (change accordingly)
  var file = DriveApp.getFileById(fileId);
  file.addEditor(email); // Share the file with the respondent (edit access).
  var downloadUrl = file.getDownloadUrl(); // Get download URL (only works for non G-Suite documents)
  MailApp.sendEmail(email, "Your file link", downloadUrl); // Send email with download URL
}

Примечания:

  • Объекты событий используются для получения электронной почты респондента. Осторожно, это электронное письмо будет заполняться только в том случае, если выбрана опция Сбор адресов электронной почты .
  • В этом примере пользователю предоставляется доступ к редактированию. Используйте addCommenter или addViewer вместо addEditor , если вы не хотите, чтобы пользователь мог редактировать это.
  • Метод getDownloadUrl () работает только для документов не из G-Suite. Для документов такого типа необходимо создать ссылку для загрузки, как в этом ответе :

https://www.googleapis.com/drive/v3/files/{your-file-id}/export&mimeType={your-mime-type}

Ссылка:

1 голос
/ 28 марта 2020

Да, есть несколько способов сделать это. Самый простой способ - предоставить доступ к файлу всем, кто может просмотреть ссылку.

Добавьте идентификатор файла в следующую прямую ссылку для скачивания: : https://drive.google.com/uc?export=download&id=YOUR FILE ID

Затем можно создать несколько ссылка, чтобы сделать его немного более презентабельным

В настройках презентации формы вы можете добавить сообщение и ссылку для скачивания.

enter image description here

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

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

...