Awọn iṣẹ Yandex firanṣẹ meeli

Awọn iṣẹ Yandex firanṣẹ meeli

Loni a yoo ṣẹda awọn ti a npe ni. Yandex iṣẹ (orukọ osise Awọn iṣẹ awọsanma Yandex), eyiti o ṣe ajọṣepọ pẹlu iṣẹ ifiweranṣẹ FiranṣẹGrid yoo firanṣẹ “ọṣẹ” si awọn olumulo ti o sùn ni alaafia (o kan ṣe awada - Mo mọ pe gbogbo wa lodi si àwúrúju).

Emi tun jẹ alatako (ṣugbọn laisi fanaticism) ti awọn olupin ibile, ati alatilẹyin ti awọn ti a pe. laisi olupin Awọn solusan (aini olupin), nitori Emi ko fẹran (ati Emi ko mọ gaan bi o ṣe le) ṣakoso awọn olupin, ati paapaa diẹ sii, sanwo fun akoko ti wọn ko ba kojọpọ. Ohun miiran ni awọn iṣẹ. Ẹnikan ṣe iṣẹ wọn laisi mi, ati pe Mo sanwo fun awọn ipe nikan. Ni ibẹrẹ Oṣu Kẹwa ọdun 2019, Yandex ṣafihan rẹ Awọn iṣẹ awọsanma Yandex - dabi ẹnipe akọkọ ni Russian Federation laisi olupin. Ati pe kini o dara julọ ni pe fun awọn ọgbọn Alice wọn jẹ ọfẹ ni gbogbogbo, nitorinaa wọn ti wa ninu iran agbeegbe mi lati igba naa. Ṣugbọn jẹ ki a bẹrẹ tẹlẹ.

Jẹ ki a foju inu wo oju iṣẹlẹ yii. Ohun elo rẹ (fun apẹẹrẹ, ọgbọn Alice Ranti ati Gbagbe eyiti, nipasẹ ọna, tun ṣiṣẹ lori Awọn iṣẹ Yandex) n pe olumulo lati ra ọja oni-nọmba kan, fun apẹẹrẹ, awọn aṣayan afikun, ati olumulo ṣe isanwo kan. Diẹ ninu iru eto isanwo (irúju iru si Yandex.Money) ṣe ilana sisanwo ati firanṣẹ si adirẹsi ti o pese (ati pe a yoo ni ọna asopọ kan lati pe Awọn iṣẹ Yandex) HTTP-Ibeere ti o ni awọn alaye isanwo, gẹgẹbi iye, orukọ kikun, nọmba foonu ati imeeli ti ẹniti n sanwo. A fẹ lati ṣe ilana data yii ni diẹ ninu awọn ọna, fun apẹẹrẹ: ṣayẹwo iye, ṣe awọn titẹ sii ti o yẹ ninu ibi ipamọ data, firanṣẹ si awọn olumulo SMS и imeeli pẹlu ìmúdájú ti ọjà ti owo sisan ati siwaju ilana. Nitorina funrararẹ microservice.

Nipa bi lati Awọn iṣẹ Yandex ṣe awọn titẹ sii ni database Awọsanma Firestore a ti wo tẹlẹ ninu ikẹkọ Alice ranti ohun gbogbo (ati ni ọjọ iwaju, Mo ro pe, a yoo gbero apẹẹrẹ fun ibi ipamọ data miiran - Ibi ipamọ data Yandex). Nipa bi o ṣe le firanṣẹ si awọn olumulo SMS ati ki o ṣepọ ohun elo wa pẹlu Yandex.Owo - a yoo yanju rẹ ni ọjọ iwaju nitosi. Bayi jẹ ki a kan wo pẹlu fifiranṣẹ awọn lẹta.

1. Ṣẹda iroyin ni SendGrid

DaakọSendGrid jẹ yiyan mi nikan, eyiti Mo ṣe fun awọn idi pupọ, akọkọ ni pe wọn ni SDK ti a ti ṣetan fun Node.js. O le yan eyikeyi iṣẹ ifiweranṣẹ miiran.

Jẹ ki a tẹsiwaju si oju-iwe iforukọsilẹ akọọlẹ ki o si fọwọsi fọọmu iforukọsilẹ nibẹ. Lẹhinna a lọ si Dashboard, ninu awọn lilọ nronu yan Imeeli API -> Itọsọna Iṣọkan, ati lori akọkọ nronu - API API ati нажимаем кнопку yan. Ohun gbogbo dabi ninu aworan:

Awọn iṣẹ Yandex firanṣẹ meeli

Ni nigbamii ti igbese a yan Node.js:

Awọn iṣẹ Yandex firanṣẹ meeli

Next a wá soke pẹlu wa APIOrukọ bọtini (yoo han nikan ni console ninu atokọ ti awọn bọtini, ati pe ko ni nkankan lati ṣe pẹlu koodu iwaju wa; Mo kan wa pẹlu alaigbagbọ kan. demo-api-bọtini) ki o si tẹ bọtini naa Ṣẹda Key:

Awọn iṣẹ Yandex firanṣẹ meeli

Bọtini naa yoo ṣe ipilẹṣẹ, a yoo daakọ rẹ ki o tọju rẹ ni igbẹkẹle ti o jinlẹ. Ati pe a yoo ni iboju pẹlu bọtini kan Daju Integration, bi ninu aworan ni isalẹ, ṣugbọn a ko ni tẹ sibẹ, ṣugbọn jẹ ki a lọ si kikọ koodu naa:

Awọn iṣẹ Yandex firanṣẹ meeli

2. koodu kikọ

Ṣugbọn koodu funrararẹ, bi o ti le rii, jẹ ẹgan kekere - awọn laini 22!

Awọn iṣẹ Yandex firanṣẹ meeli

Ni tito #8 Imeeli mi jẹ koodu lile (ati nitorinaa fi ara pamọ pẹlu itiju) - jọwọ tọkasi tirẹ. Ni igbesi aye gidi, a yoo gba gbogbo data naa (pẹlu imeeli) lati nkan iṣẹlẹ. Fun apẹẹrẹ, ti o ba awọn ọna post ohun kan ranṣẹ si iṣẹ wa olumulo pẹlu aaye (ohun-ini) imeeli, iye ti aaye yii le gba bi eleyi:

const { user } = event;
const email = user.email;

Ati pe ti adirẹsi imeeli ba ti kọja si iṣẹ naa nipa lilo ọna naa gbafun apẹẹrẹ: https://functions.yandexcloud.net/123abc?[email protected]
paramita iye imeeli o le gba bi eleyi:

const email = event.queryStringParameters.email;

Lati wo kini gangan ti o wa ninu ohun kan iṣẹlẹ, o le ṣẹda awọn ti o rọrun Yandex iṣẹ ki o si yi o pẹlu awọn ibeere:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

Eyi ni a jiroro ni awọn alaye diẹ sii (ṣugbọn kere si kedere) ninu iwe aṣẹ osise nibi.

Nitorinaa, ṣẹda itọsọna iṣẹ akanṣe (fun apẹẹrẹ, ifiweranse), lọ si rẹ, bẹrẹ iṣẹ akanṣe, fi awọn igbẹkẹle sii:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

Nibi package nikan ni o nilo @sendgrid/mail. Apo olora imeeli-validator ṣayẹwo adirẹsi imeeli fun iwulo (bawo ni Emi ko ṣe gboju lẹsẹkẹsẹ?), Ṣugbọn ti a ba ni idaniloju rẹ (o ti ṣayẹwo tẹlẹ fun igba pipẹ laisi wa), a ko ni lati fi sii (ati, ti dajudaju, a ko ni lati ṣayẹwo rẹ ni koodu). Apo olora dotenv ṣe apẹrẹ lati ka awọn igbasilẹ lati faili kan .env bi asiko isise oniyipada. Sugbon ninu Awọn iṣẹ Yandex O ṣee ṣe lati gbe awọn oniyipada wọnyi taara sinu agbegbe asiko asiko. Bawo? - Emi yoo fi han ni isalẹ. Nitorina package dotenv o tun le ko fi o, ati awọn faili .env - ma ṣe ṣẹda, ati ni akoko kanna koodu wa ninu faili naa atọka.js maṣe yipada. Ṣugbọn nibi a ti fi package yii sori ẹrọ, nitorinaa a ṣẹda awọn faili atọka.js и .env:

touch index.js
touch .env

Ninu faili atọka.js kọ awọn laini koodu 22 ti o han ninu sikirinifoto loke (nikan ni laini #8 yi imeeli rẹ pada), ati ninu faili naa .env - (laisi eyikeyi awọn agbasọ tabi aami ifamisi) pato awọn bata - orukọ bọtini / iye APIeyi ti a laipe gba ni console FiranṣẹGrid:
SENDGRID_API_KEY=aṣiri-rẹ-sendgrid-api-bọtini

Ati pe ti o ba fẹ iṣẹ ti o kere si, kọlu ibi ipamọ ki o fi awọn idii sii:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

Ninu faili atọka.js, ni tito #8 yi imeeli; ṣẹda faili ninu awọn root liana .env, ati ninu rẹ tọkasi orukọ/iye bọtini API, bi a ṣe han loke.

3. Ranse

Diẹ ẹ sii tabi kere si kedere ati ni apejuwe awọn nipa Yandex.Cloud ati bi o ṣe le gbe sibẹ Awọn iṣẹ Yandex se apejuwe ninu mi article Alice ni Land of Bitrix - Mo fi awọn alaimọkan ranṣẹ si orilẹ-ede yii, ati fun gbogbo eniyan miiran (ati awọn ti o pada) - lẹhinna iwe apanilerin kekere kan (ie lẹsẹsẹ awọn aworan ati ọrọ).

A ṣẹda zip- pamosi (jẹ ki a pe, fun apẹẹrẹ, mailer.zip), ninu eyi ti a fi awọn liana node_modulu ati awọn faili .env, index.js - ohun gbogbo lati katalogi ise agbese wa:

Awọn iṣẹ Yandex firanṣẹ meeli

A ṣẹda iṣẹ kan pẹlu orukọ ... ni deede - ifiweranse, ninu akojọ aṣayan lilọ kiri osi a tẹ Olootu, fọwọsi awọn aaye ti a beere, ki o si yipada si taabu ZIP pamosi gba lati ayelujara wa pamosi mailer.zip:

Awọn iṣẹ Yandex firanṣẹ meeli

Ati pe eyi ni aṣayan ti a mẹnuba tẹlẹ lati ṣe igbasilẹ API bọtini taara nibi, dipo ṣiṣẹda faili kan ninu iṣẹ naa .env, ati ki o ma ṣe fi sori ẹrọ ni package dotenv. Ṣugbọn a ti ṣe gbogbo eyi tẹlẹ, nitorinaa Mo n ṣafihan fun alaye nikan. Iyẹn ni, ko si iwulo lati ṣe pidánpidán!

Awọn iṣẹ Yandex firanṣẹ meeli

Bayi ni igun apa ọtun tẹ bọtini naa Ṣẹda ti ikede, ati ki o duro kan tọkọtaya ti iseju. Nigbati ohun gbogbo ba ṣetan, a yoo lọ laifọwọyi si apakan Akopọ. Nibẹ a yoo mu aṣayan ṣiṣẹ Àkọsílẹ iṣẹki o le ṣe ajọṣepọ pẹlu rẹ lati ita aye.

Awọn iṣẹ Yandex firanṣẹ meeli

O ri ọna asopọ buluu ti o lodi si akọle naa Ipe ọna asopọ? Tẹ e. Ferese aṣawakiri ti o ṣofo yoo ṣii… Ṣugbọn duro - Mo gba imeeli kan:

Awọn iṣẹ Yandex firanṣẹ meeli

Bayi o le pada si console FiranṣẹGrid, ki o si tẹ bọtini naa Daju Integration. Eto naa yoo ṣayẹwo ohun gbogbo nipasẹ awọn ikanni rẹ, ati bi abajade o yẹ ki o pada iboju kan bii eyi:

Awọn iṣẹ Yandex firanṣẹ meeli

Iyẹn ni, awọn eniyan (ati awọn ọmọbirin, nitorinaa) - ohun gbogbo rọrun pupọ ati yangan! Awọn nkan yoo wa diẹ sii. Ti ẹnikẹni ba nifẹ lati ka nkan bii eyi, ṣe alabapin ki o maṣe padanu.

4. Awọn ẹbun

Awọn iṣẹ Yandex firanṣẹ meeli

orisun: www.habr.com

Fi ọrọìwòye kun