Почему мой скрипт приложений Google не добавляет данные электронной почты на лист Google?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой скрипт приложений Google не добавляет данные электронной почты на лист Google?

Сообщение Anonymous »

Я пытаюсь настроить простую систему подписки по электронной почте, используя скрипт Google Apps и электронную таблицу Google. Идея состоит в том, что пользователи вводят свой адрес электронной почты в форму на моем веб-сайте, и письмо отправляется с помощью запроса POST на выборку в веб-приложение Google Apps Script. Затем сценарий должен добавить электронное письмо в электронную таблицу Google.
Вот мой код сценария Google Apps:

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

function doPost(e) {
try {
// Parse the incoming request
const email = JSON.parse(e.postData.contents).email;

// Open the spreadsheet and append the email
const spreadsheetId = "CENSORED";
const sheet = SpreadsheetApp.openById(spreadsheetId).getActiveSheet();
sheet.appendRow([email]);

// Return a success message
return ContentService.createTextOutput(
JSON.stringify({ message: "Subscription successful!" })
).setMimeType(ContentService.MimeType.JSON);

} catch (error) {
// Return an error message
return ContentService.createTextOutput(
JSON.stringify({ message: "Error: " + error.message })
).setMimeType(ContentService.MimeType.JSON);
}
}
< /code>
Вот код Frontend JavaScript, который делает запрос: < /p>
const subscribeButton = document.querySelector('.sketchy-button');

subscribeButton.addEventListener('click', () => {
const emailInput = document.getElementById('email-input');
const email = emailInput.value;

if (email) {
fetch('CENSORED', {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ email }),
})
.then(response => response.json())
.then(data => {
if (data.message === "Subscription successful!") {
alert("Thanks for subscribing!");
emailInput.value = "";
} else {
alert("Something went wrong: " + data.message);
}
})
.catch(error => {
console.error("Error:", error);
alert("An error occurred. Please try again later.");
});
} else {
alert("Please enter an email first.");
}
});
Я развернул скрипт приложений Google в качестве веб -приложения с разрешениями, установленными «Любой со ссылкой», и я уверен > Вызов верен. < /p>
Однако он не работает! Электронное письмо не отображается в электронной таблице, и я вижу эту ошибку в журналах скриптов приложений: < /p>

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

Jan 27, 2025, 2:05:12 AM    Info    Request received: {"postData":{"contents":"{\"email\":\"example@gmail.com\"}"}}
Jan 27, 2025, 2:05:13 AM    Info    Email added to spreadsheet
Jan 27, 2025, 2:05:13 AM    Info    Error: ContentService.createTextOutput(...).setMimeType(...).setHeader is not a function
Jan 27, 2025, 2:05:13 AM    Error   TypeError: ContentService.createTextOutput(...).setMimeType(...).setHeader is not a function
at doPost(Code:33:8)
at testDoPost(Code:43:16)
at [unknown function](Code:47:1)
Я также пробовал удалить часть .setHeader() (поскольку она, похоже, не работает с ContentService), но даже после этого электронные письма по-прежнему не попадают в таблицу.
Что я делаю не так? Как это исправить?
Я попробовал настроить POST-запрос с моего веб-сайта в веб-приложение Google Apps Script. Я ожидал, что сценарий извлечет электронное письмо из запроса и добавит его в качестве новой строки в мою таблицу Google.
Вместо этого я продолжал получать ошибку в журналах сценариев приложений:

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

TypeError: ContentService.createTextOutput(...).setMimeType(...).setHeader is not a function

Даже после удаления части .setheader () (которая, как я узнал, не работает с содержанием Contentservice ), электронная почта все еще не Появиться в электронной таблице. Я также подтвердил URL -адрес веб -приложения и разрешения верны. Все еще не повезло!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ogle-sheet
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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