Это сработало.
Мне удалось создать конечную точку с помощью скрипта Google Apps, которая позволяет конечному пользователю отправлять сообщение мне (или другому контакту) POST, а также отправляет копию этого сообщения POST к ним.
Код POST-запроса был примерно таким:
function doPost(e) {
var response;
try {
response = sendContactEmail(e.postData.contents);
}
catch (error) {
throw JSON.stringify(error, null, '\t');
}
return ContentService
.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON)
}
Теперь, когда я попробовал это, я столкнулся с проблемой. Когда я попробовал это с моего сайта Angular, с кодом службы, например:
@Injectable()
export class ContactService implements SenderService {
constructor(private http: HttpClient) {}
send(message: EmailMessage): Observable<any> {
return this.http.post<any>(
"https://script.google.com/macros/s/AKfycbyEuvROpXUEi4wTX4N06nqF6oHlwihVc9Ut6-OG04zPi5yuOCzn/exec",
JSON.stringify({ data: message }),
{
headers: {
"Access-Control-Allow-Origin": "*",
},
}
);
}
}
, он не работает, и я столкнулся с проблемой, например,
Access to XMLHttpRequest at 'https://script.google.com/macros/s/AKfycbyEuvROpXUEi4wTX4N06nqF6oHlwihVc9Ut6-OG04zPi5yuOCzn/exec' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
При попытке отладить это проблема, я открываю Postman, делаю запрос, только чтобы получить следующий HTML ответ:
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="//ssl.gstatic.com/docs/script/images/favicon.ico">
<title>Error</title>
<style type="text/css">
body {
background-color: #fff;
margin: 0;
padding: 0;
}
.errorMessage {
font-family: Arial, sans-serif;
font-size: 12pt;
font-weight: bold;
line-height: 150%;
padding-top: 25px;
}
</style>
</head>
<body style="margin:20px">
<div><img alt="Google Apps Script" src="//ssl.gstatic.com/docs/script/images/logo.png"></div>
<div style="text-align:center;font-family:monospace;margin:50px auto 0;max-width:600px">Authorization is
required to perform that action.</div>
</body>
</html>
Я не очень разбираюсь в использовании скрипта Google Apps в качестве бэкэнда.
Следует ли мне настраивать токен OAuth для такого рода вещей, и если да, то как? Иначе, что мне делать с этой проблемой?
В настоящее время нет серверной части, кроме моего устаревшего скрипта Google Apps.