Вот мой код сценария 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.");
}
});
Однако он не работает! Электронное письмо не отображается в электронной таблице, и я вижу эту ошибку в журналах скриптов приложений: < /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)
Что я делаю не так? Как это исправить?
Я попробовал настроить POST-запрос с моего веб-сайта в веб-приложение Google Apps Script. Я ожидал, что сценарий извлечет электронное письмо из запроса и добавит его в качестве новой строки в мою таблицу Google.
Вместо этого я продолжал получать ошибку в журналах сценариев приложений:
Код: Выделить всё
TypeError: ContentService.createTextOutput(...).setMimeType(...).setHeader is not a function
Даже после удаления части .setheader () (которая, как я узнал, не работает с содержанием Contentservice ), электронная почта все еще не Появиться в электронной таблице. Я также подтвердил URL -адрес веб -приложения и разрешения верны. Все еще не повезло!
Подробнее здесь: https://stackoverflow.com/questions/793 ... ogle-sheet