Разработка
Интеграция Nodul с Gmail для отправки сообщений
Invalid Date
6 мин чтения
%252520(1).png&w=3840&q=75)
Часто требуется в результате каких-то событий или ситуаций нужно настроить рассылку уведомлений, например на почту. Тут мы настроем сценарий который позволит это сделать отправкой email сообщения с помощью Gmail, с использованием Webhook.
Сначала получим токен авторизации для Google
- Переходим на нашу статью как получить Google токен в Developer OAuth 2.0 Playground (ссылка)
Настроим сценарий в Nodul
- Переходим на страницу сервиса Nodul
- Создаём новый проект

- Создаём компонент "Webhook", копируем себе его адрес тоже в блокнот
- Создадим компонент "JavaScript"
- Скопируйте javascript код с этой странички
const fromAdress = "mymail@gmail.com"; // С какого адреса отправлять, от кого(не забудьте поменять на свой)
const messageTarget = data["{{1.body.target}}"]; // На какой адреса отправлять, кому(не забудьте поменять на свою значение)
const messageTitle = data["{{1.body.title}}"]; // Заголовок сообщения(не забудьте поменять на свою значение)
const messageText = data["{{1.body.message}}"]; // Текст сообщения(не забудьте поменять на свою значение)
const token = data["{{1.body.token}}"] // Токен авторизации(не забудьте поменять на свою значение)
// Шифрование всей необходимой информации в base64 с заменой на безопасные символы
const resultEncodeString = btoa(
`From: ${fromAdress}\r\n` +
`To: ${messageTarget}\r\n` +
`Subject: ${messageTitle}\r\n\r\n` +
`${messageText}`
).replace(`/\+/g`, '-').replace(`/\//g`, '_').replace(`/=+$/`, '');
return {
fromAdress,
token,
resultEncodeString
}
- Сохраняем всю информацию в узле
- Запустите любой rest клиент(Postman, Insomnia), можете сделать в браузере но тогда нужно передавать информацию в query параметрах
- Импортируйте в него код ниже и измените значения у параметров на свои
curl --request POST \
--url '[адресс вашего webhook]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data target='[адресс кому отправляем сообщение]' \
--data 'title=Hello World![заголовок вашего сообщения]' \
--data 'message=I use Nodul to send this message from Gmail![текст вашего сообщения]' \
--data token='[ваш токен который вы получили]'
- Запустите проект
- Вызвать Webhook с помощью вашего rest клиента
- Откройте снова компонент "JavaScript"
- Поменяйте значения на свои с помощью бокового меню Nodul, в комментариях к коду написано что нужно поменять(обычно просто текст в квадратных скобках), после комментарии можно удалить

- Сохраняем изменения в узле
- Следующим создаём компонент "HttpRequest"

- В endpoint адресе вставляем передаваемый адрес нашего Gmail
https://gmail.googleapis.com/gmail/v1/users/[выбрать в боковом меню Nodul fromAdress из JS]/messages/send- Метод выбираем "Post"
- Тело "raw"
{raw:"[выбрать в боковом меню Nodul resultEncodeString из JS]"}- "Заголовки"
Accept: application/json
Content-Type: application/json
Authorization: Bearer [выбрать в боковом меню Nodul token из JS]
- Можете импортировать готовый с помощью "Создать из примера (CURL)"
curl --request POST \
--url 'https://gmail.googleapis.com/gmail/v1/users/YOUR_EMAIL/messages/send' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer TOKEN_HERE' \
--header 'Content-Type: text/plain' \
--data '{raw: "ENCODE_STRING"}'
- Нажимаем "Сохранить"
- Для проверки воспользоваться любым сервисом temp mail [ссылка]
- Скопировать сгенерированный email адрес

- Вставить его в поле target у параметра в rest client, если делали через обычный get то поменять аналогичный query параметр
- Вызываем запрос

- Идём проверяем ящик почтовый
- Надеюсь вам пришло ваше сообщение;)
Полезные ссылки:
Основные
Информация
- https://developers.google.com/gmail/api/reference/rest/v1/users.messages/send
- https://developers.google.com/gmail/api/reference/rest/v1/users.messages#Message