Я пытался использовать облачную функцию Google для отправки электронного письма после следующих примеров:
https://github.com/firebase/functions-samples/tree/master/quickstarts/email-users
и https://angularfirebase.com/lessons/sendgrid-v3-nodejs-transactional-email-cloud-function/
Затем мне пришлось внести некоторые коррективы в соответствии с развивающимися технологиями, и мой результат таков:
const functions = require('firebase-functions');
const cors = require('cors')({ origin: true });
const sendGrid = require('@sendgrid/mail');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
const SENDGRID_API_KEY="***";
sgMail.setApiKey(SENDGRID_API_KEY);
sendGrid.setApiKey(functions.config().sendgrid.apikey);
sendGrid.setSubstitutionWrappers('{{', '}}');
exports.httpEmail = functions.https.onRequest((req, res) => {
cors( req, res, () => {
const name = req.body.toName;
const email = req.body.Email;
const id = req.body.ID;
const msg = {
to: email,
from: mail@homepage.com',
subject: id,
text: `Hello {{name}}`,
html: `<h1>Hello {{name}}</h1>`
};
return sgMail.send(msg)
.then(() => res.status(200).send('email sent!') )
.catch(err => res.status(400).send(err) )
});});
Теперь это дает мне синтаксическую ошибку
/ user_code / index.js: от 20 до: {{email}}, ^ SyntaxError: неожиданный токен
{
"name": "email",
"description": "sending emails",
"version": "0.0.1",
"dependencies": {
"sendgrid/mail": "^6.3.1",
"cors": "^2.8.1",
"moment": "^2.17.1",
"firebase-admin": "~5.11.0",
"firebase-functions": "^1.0.0"
},
"scripts": {
"lint": "./node_modules/.bin/eslint --max-warnings=0 .",
"serve": "firebase serve --only functions",
"shell": "firebase experimental:functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"private": true
}
И это дает мне ошибку разбора:
Невозможно проанализировать package.json, ошибка в строке 7, столбец 6
Обе ошибки не имеют смысла для меня, и мне пришлось внести 4 различных корректировки, которые заставляют меня сомневаться, что я нахожусь на правильном пути вообще. У кого-нибудь есть рабочий пример или учебник, включающий cors, текст с переменными и sendgrid? Или кто-то может решить сообщение об ошибке для меня?