Как аутентифицировать скрипт для использования со скриптом Google AppsJavascript

Форум по Javascript
Ответить
Anonymous
 Как аутентифицировать скрипт для использования со скриптом Google Apps

Сообщение Anonymous »

Я работаю над проектом по отправке информации, собранной в форме HTML, в электронную таблицу Google. Я нашел очень хороший урок о том, как это сделать. Вот файлы и скрипты, которые я использую:
1. HTML-файл

Код: Выделить всё









[h4]Contact Us[/h4]












2. JS-файл

Код: Выделить всё

const scriptURL = 'URL of the Web App'

const form = document.forms['contact-form']

form.addEventListener('submit', e => {

e.preventDefault()

fetch(scriptURL, { redirect: 'follow', method: 'POST', body: new FormData(form)})
.then(response => alert("Thank you! Form is submitted" ))
.then(() => { window.location.reload(); })
.catch(error => console.error('Error!', error.message))
})
3. Скрипт в Google Apps Scripts

Код: Выделить всё

const sheetName = ''
const scriptProp = PropertiesService.getScriptProperties()

function intialSetup () {
const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}

function doPost (e) {
const lock = LockService.getScriptLock()
lock.tryLock(10000)

try {
const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
const sheet = doc.getSheetByName(sheetName)

const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
const nextRow = sheet.getLastRow() + 1

const newRow = headers.map(function(header) {
return header === 'Date' ? new Date() : e.parameter[header]
})

sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])

return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
.setMimeType(ContentService.MimeType.JSON)
}

catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}

finally {
lock.releaseLock()
}
}
Описание проблемы
Если я разверну приложение как «У кого есть доступ» --> «Любой» , все работает нормально. Но я хочу, чтобы эта форма была доступна только мне.
Поэтому я изменил развертывание на «У кого есть доступ» -> «Только я», и скрипт не работает.
Если я удалю часть js (которая обрабатывает ошибки и отображает красивое окно на экране в случае успеха), я снова работаю.
Так что я думаю заключается в том, что мне нужно передать какой-то маркер авторизации при выборке. Но я не знаю, как и где получить этот токен.
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/793 ... pps-script
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»