Funksionet Yandex dërgojnë postë

Funksionet Yandex dërgojnë postë

Sot do të krijojmë të ashtuquajturat. Funksioni Yandex (emri zyrtar Funksionet e resë Yandex), i cili u pajtua me shërbimin e postës SendGrid do t'u dërgojë "sapun" përdoruesve që flenë në mënyrë paqësore (po bëj shaka - e di që të gjithë jemi kundër spamit).

Unë jam gjithashtu një kundërshtar (por pa fanatizëm) i serverëve tradicionalë, dhe një mbështetës i të ashtuquajturve. pa server zgjidhje (pa server), sepse nuk më pëlqen (dhe nuk di vërtet si t'i administroj) serverët, dhe aq më tepër, paguaj për kohën kur ata nuk janë të ngarkuar. Një tjetër gjë janë funksionet. Dikush i shërben pa mua dhe unë paguaj vetëm për telefonatat. Në fillim të tetorit 2019, Yandex prezantoi atë Funksionet e resë Yandex - duket se është i pari në Federatën Ruse pa server. Dhe ajo që është veçanërisht e bukur është se për aftësitë e Alice-s ato janë përgjithësisht të lira, kështu që ata kanë qenë në vizionin tim periferik që atëherë. Por le të fillojmë tashmë.

Le ta imagjinojmë këtë skenar. Aplikimi juaj (për shembull, aftësia e Alice Mbaj mend dhe harro i cili, meqë ra fjala, funksionon gjithashtu Funksionet Yandex) fton përdoruesin të blejë një produkt dixhital, për shembull, opsione shtesë, dhe përdoruesi bën një pagesë. Një lloj sistemi pagese (në mënyrë konfuze të ngjashme me Yandex) përpunon pagesën dhe e dërgon në adresën që ju jepni (dhe ne do të kemi një lidhje për të telefonuar Funksionet Yandex) HTTP- një kërkesë që përmban detajet e pagesës, si shuma, emri i plotë, numri i telefonit dhe emaili i paguesit. Ne duam t'i përpunojmë këto të dhëna në një farë mënyre, për shembull: kontrolloni shumën, bëni hyrjet e duhura në bazën e të dhënave, dërgoni te përdoruesit SMS и Email me konfirmimin e pranimit të pagesës dhe udhëzime të mëtejshme. Pra vetë mikroservice.

Rreth asaj se si nga Funksionet Yandex bëni shënime në bazën e të dhënave Cloud Firestore ne tashmë e kemi parë atë në tutorial Alice kujton gjithçka (dhe në të ardhmen, mendoj, do të shqyrtojmë një shembull për një bazë tjetër të dhënash - Baza e të dhënave Yandex). Rreth asaj se si t'u dërgoni përdoruesve SMS dhe të integrojmë aplikacionin tonë me Yandex.Money - Ne do ta rregullojmë atë në të ardhmen e afërt. Tani le të merremi vetëm me dërgimin e letrave.

1. Krijoni një llogari në SendGrid

ShënimSendGrid është vetëm zgjedhja ime, të cilën e bëra për disa arsye, kryesorja është që ata kanë një SDK të gatshme për Node.js. Ju mund të zgjidhni çdo shërbim tjetër postimi.

Le të vazhdojmë në faqen e regjistrimit të llogarisë dhe plotësoni formularin e regjistrimit atje. Pastaj shkojmë në Profili, në panelin e lundrimit zgjidhni Email API -> Udhëzues Integrimi, dhe në panelin kryesor - Ueb API dhe shtypni butonin Zgjedh. Gjithçka është si në foto:

Funksionet Yandex dërgojnë postë

Në hapin tjetër zgjedhim Node.js:

Funksionet Yandex dërgojnë postë

Tjetra kemi ardhur me për tonë API-emri i çelësit (do të shfaqet vetëm në tastierë në listën e çelësave dhe nuk ka të bëjë fare me kodin tonë të ardhshëm; sapo dola me një të padurueshëm demo-api-çelës) dhe shtypni butonin Krijo çelës:

Funksionet Yandex dërgojnë postë

Çelësi do të gjenerohet, ne do ta kopjojmë dhe do ta mbajmë në besimin më të thellë. Dhe ne do të kemi një ekran me një buton Verifiko Integrimin, si në foton më poshtë, por ne nuk do ta klikojmë ende, por le të kalojmë në shkrimin e kodit:

Funksionet Yandex dërgojnë postë

2. Shkrimi i kodit

Por vetë kodi, siç mund ta shihni, është qesharak i vogël - 22 rreshta!

Funksionet Yandex dërgojnë postë

Në rradhë #8 Email-i im është i koduar (dhe për këtë arsye i fshehur me turp) - ju lutemi tregoni tuajat. Në jetën reale, ne do të marrim të gjitha të dhënat (përfshirë Email) nga objekti ngjarje. Për shembull, nëse metoda POST një objekt dërgohet në funksionin tonë përdorues me fushë (pronë) Email, vlera e kësaj fushe mund të merret si kjo:

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

Dhe nëse adresa e emailit i kalohet funksionit duke përdorur metodën GET, për shembull: https://functions.yandexcloud.net/123abc?[email protected]
vlera e parametrit Email mund ta merrni si kjo:

const email = event.queryStringParameters.email;

Për të parë se çfarë saktësisht përmban një objekt ngjarje, mund të krijoni më të thjeshtën Funksioni Yandex dhe kthejeni atë me pyetje:

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

Kjo është diskutuar më në detaje (por më pak qartë) në dokumentacionin zyrtar këtu.

Pra, krijoni një direktori projekti (për shembull, postues), shkoni tek ai, inicializoni projektin, instaloni varësitë:

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

Këtu kërkohet vetëm paketa @sendgrid/mail. Qese plastike email-validator kontrollon adresën e emailit për vlefshmërinë (si nuk e mora me mend menjëherë?), por nëse jemi të sigurt për të (është kontrolluar tashmë për një kohë të gjatë pa ne), nuk kemi pse ta instalojmë atë (dhe, sigurisht, nuk duhet ta kontrollojmë në kod). Qese plastike dotenv projektuar për të lexuar të dhënat nga një skedar .zili si variabla të kohës së funksionimit. Por në Funksionet Yandex Është e mundur që këto variabla të vendosen drejtpërdrejt në mjedisin e kohës së funksionimit. Si? - Do ta tregoj më poshtë. Prandaj paketa dotenv ju gjithashtu nuk mund ta instaloni atë dhe skedarin .zili - mos krijoni, dhe në të njëjtën kohë kodi është në skedar indeks.js mos ndrysho. Por këtu ne e kemi instaluar këtë paketë, kështu që krijojmë skedarë indeks.js и .zili:

touch index.js
touch .env

Në dosje indeks.js shkruani 22 rreshta kodi të treguar në pamjen e mësipërme (vetëm në rresht #8 ndryshoni emailin tuaj) dhe në skedar .zili - (pa thonjëza ose shenjë pikësimi) specifikoni emrin/vlerën e çiftit - çelësit APItë cilën e morëm së fundmi në tastierë SendGrid:
SENDGRID_API_KEY=kyç-api-sendgrid-sendgrid

Dhe nëse doni më pak punë, klononi depon dhe instaloni paketat:

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

Në dosje indeks.js, ne rresht #8 Ndrysho e-mailin; krijoni një skedar në direktorinë rrënjë .zili, dhe në të shënoni emrin/vlerën e çelësit API, siç tregohet pak më sipër.

3. Vendosni

Pak a shumë qartë dhe në detaje rreth Yandex.Cloud dhe si ta vendosni atje Funksionet Yandex përshkruar në artikullin tim Alisa në tokën e Bitrix-it - Unë i dërgoj injorantët në këtë vend, dhe për të gjithë të tjerët (dhe ata që u kthyen) - pastaj një libër të vogël komik (d.m.th. një seri fotografish dhe tekstesh).

Ne krijojmë zip-arkivë (le ta quajmë, për shembull, postues.zip), në të cilin ne përfshijmë direktorinë nyjet_module dhe dosjet .env, index.js - gjithçka nga katalogu i projektit tonë:

Funksionet Yandex dërgojnë postë

Ne krijojmë një funksion me emrin ... saktë - postues, në menynë e majtë të navigimit futemi Redaktori, plotësoni fushat e kërkuara dhe kaloni në skedën Arkivi ZIP shkarkoni arkivin tonë postues.zip:

Funksionet Yandex dërgojnë postë

Dhe këtu është opsioni i përmendur më parë për të shkarkuar Tasti API direkt këtu, në vend që të krijoni një skedar në projekt .zili, dhe mos e instaloni paketën dotenv. Por ne i kemi bërë tashmë të gjitha këto, kështu që po e tregoj vetëm për informacion. Kjo do të thotë, nuk ka nevojë të kopjohet!

Funksionet Yandex dërgojnë postë

Tani në këndin e sipërm të djathtë klikoni butonin Krijo Version, dhe prisni disa sekonda. Kur gjithçka të jetë gati, ne do të shkojmë automatikisht në seksion Rishikimi. Aty do të aktivizojmë opsionin funksion publiknë mënyrë që të mund të ndërveproni me të nga bota e jashtme.

Funksionet Yandex dërgojnë postë

Ju shihni lidhjen blu përballë mbishkrimit Lidhja për të thirrur? Klikoni atë. Do të hapet një dritare e zbrazët e shfletuesit... Por prisni - mora një email:

Funksionet Yandex dërgojnë postë

Tani mund të ktheheni në tastierë SendGrid, dhe shtypni butonin Verifiko Integrimin. Sistemi do të kontrollojë gjithçka përmes kanaleve të tij, dhe si rezultat duhet të kthejë një ekran si ky:

Funksionet Yandex dërgojnë postë

Kjo është ajo, djema (dhe vajza, natyrisht) - gjithçka është me të vërtetë shumë e thjeshtë dhe elegante! Do të ketë më shumë artikuj. Nëse dikush është i interesuar të lexojë diçka të tillë, abonohuni që të mos humbisni.

4. Donacionet

Funksionet Yandex dërgojnë postë

Burimi: www.habr.com

Shto një koment