Heim > Web-Frontend > js-Tutorial > Hauptteil

Erstellen Sie einen professionellen E-Mail-Dienst: Gmail OAuth Express Webhooks

Linda Hamilton
Freigeben: 2024-10-28 02:47:30
Original
120 Leute haben es durchsucht

E-Mail-Benachrichtigungen sind für moderne Webanwendungen von entscheidender Bedeutung. In diesem Leitfaden erstellen wir einen sicheren E-Mail-Benachrichtigungsdienst mithilfe von Express.js und der OAuth2-Authentifizierung von Gmail. Unser Dienst akzeptiert Webhook-Anfragen und versendet automatisch E-Mails basierend auf den eingehenden Daten.

Was wir bauen

Wir erstellen einen Express-Server, der:

  • Empfangt Webhook-Daten über POST-Anfragen
  • Authentifizierung bei Gmail mithilfe von OAuth2
  • Sendet benutzerdefinierte E-Mails basierend auf der Webhook-Nutzlast
  • Behandelt Fehler ordnungsgemäß

Voraussetzungen

  • Node.js auf Ihrem Computer installiert
  • Ein Google Cloud Console-Projekt mit aktivierter Gmail-API
  • OAuth2-Anmeldeinformationen (Client-ID, Client-Geheimnis, Aktualisierungstoken)
  • Grundlegendes Verständnis von Express.js und async/await

Projekt-Setup

Installieren Sie zunächst die erforderlichen Pakete:

npm install express body-parser nodemailer googleapis dotenv
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen Sie eine .env-Datei mit Ihren Anmeldeinformationen:

CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
REDIRECT_URI=your_redirect_uri
REFRESH_TOKEN=your_refresh_token
EMAIL_USER=your_email@gmail.com
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie wie ich auf Schwierigkeiten beim Einrichten dieser Anmeldeinformationen stoßen, können Sie die folgenden Schritte ausführen...

Schritt-1: Erstellen Sie ein neues Google Cloud-Projekt:

a. Gehen Sie zu https://console.cloud.google.com/
B. Klicken Sie oben auf der Seite auf das Projekt-Dropdown
C. Klicken Sie auf „Neues Projekt“
D. Geben Sie einen Projektnamen ein und klicken Sie auf „Erstellen“

Build a Professional Email Service: Gmail OAuth Express   Webhooks

Schritt-2: Aktivieren Sie die Gmail-API:
A. Gehen Sie in der linken Seitenleiste zu „APIs & Dienste“ > „Bibliothek“
B. Suchen Sie nach „Gmail API“
C. Klicken Sie auf „Gmail API“ und dann auf „Aktivieren“

Build a Professional Email Service: Gmail OAuth Express   Webhooks


Schritt-3: Konfigurieren Sie den OAuth-Zustimmungsbildschirm:
A. Gehen Sie zu „APIs & Dienste“ > „OAuth-Zustimmungsbildschirm“
B. Wählen Sie als Benutzertyp „Extern“ und klicken Sie auf „Erstellen“
C. Füllen Sie die erforderlichen Felder aus:
- App-Name: [Ihr App-Name]
- E-Mail des Benutzersupports: [Ihre E-Mail]
- Kontaktinformationen des Entwicklers: [Ihre E-Mail]
D. Klicken Sie auf „Speichern und fortfahren“
e. Klicken Sie auf der Seite „Bereiche“ auf „Bereiche hinzufügen oder entfernen“
F. Suchen Sie den Bereich „https://mail.google.com/“ und wählen Sie ihn aus
G. Klicken Sie auf „Aktualisieren“ und dann auf „Speichern und fortfahren“
H. Klicken Sie auf der Seite „Testbenutzer“ auf „Benutzer hinzufügen“
ich. Fügen Sie Ihre Gmail-Adresse hinzu und klicken Sie auf „Speichern und fortfahren“
J. Überprüfen Sie die Zusammenfassung und klicken Sie auf „Zurück zum Dashboard“


Schritt 4: OAuth2-Anmeldeinformationen erstellen:
A. Gehen Sie zu „APIs & Dienste“ > „Anmeldeinformationen“
B. Klicken Sie auf „Anmeldeinformationen erstellen“ > „OAuth-Client-ID“
C. Wählen Sie als Anwendungstyp „Webanwendung“
D. Name: [Ihr App-Name]
e. Autorisierte JavaScript-Ursprünge: Fügen Sie die Domäne Ihres Servers hinzu (z. B. http://localhost:3000 für lokale Entwicklung)
Build a Professional Email Service: Gmail OAuth Express   Webhooks
F. Autorisierte Weiterleitungs-URIs:
- Hinzufügen: https://developers.google.com/oauthplayground
- Fügen Sie die Rückruf-URL Ihres Servers hinzu, falls Sie eine haben (z. B. http://localhost:3000/auth/google/callback)
G. Klicken Sie auf „Erstellen“
H. In einem Popup werden Ihre Kunden-ID und Ihr Kundengeheimnis angezeigt. Bewahren Sie diese sicher auf.


Schritt-5: Holen Sie sich ein neues Aktualisierungs-Token:
A. Gehen Sie zu https://developers.google.com/oauthplayground/

Build a Professional Email Service: Gmail OAuth Express   Webhooks

b. Klicken Sie oben rechts auf das Zahnradsymbol (Gefällt mir-Einstellungen)
C. Klicken Sie auf das Kontrollkästchen „Eigene OAuth-Anmeldeinformationen verwenden“
D. Geben Sie Ihre neue Kunden-ID und Ihr neues Kundengeheimnis ein
e. Schließen Sie die Einstellungen
F. Suchen Sie in der linken Seitenleiste nach „Gmail API v1“
G. Wählen Sie https://mail.google.com/
H. Klicken Sie auf „APIs autorisieren“
ich. Wählen Sie Ihr Google-Konto und erteilen Sie die angeforderten Berechtigungen
J. Klicken Sie im nächsten Bildschirm auf „Autorisierungscode gegen Token eintauschen“
k. Kopieren Sie das „Aktualisierungstoken“ aus der Antwort

Wenn Sie während dieses Vorgangs oder beim Testen der E-Mail-Funktionalität auf Probleme stoßen, geben Sie bitte die spezifischen Fehlermeldungen oder das Verhalten an, die Sie in den Kommentaren sehen.


Der Kodex erklärt

Lassen Sie uns die Umsetzung Schritt für Schritt aufschlüsseln:

1. Ersteinrichtung und Abhängigkeiten

npm install express body-parser nodemailer googleapis dotenv
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

In diesem Abschnitt wird unser Express-Server eingerichtet und die erforderlichen Abhängigkeiten importiert. Wir verwenden body-parser zum Parsen von JSON-Anfragen und dotenv zum Verwalten von Umgebungsvariablen.

2. OAuth2-Konfiguration

CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
REDIRECT_URI=your_redirect_uri
REFRESH_TOKEN=your_refresh_token
EMAIL_USER=your_email@gmail.com
Nach dem Login kopieren
Nach dem Login kopieren

Wir erstellen einen OAuth2-Client mithilfe der Authentifizierungsbibliothek von Google. Dies übernimmt die Token-Aktualisierung und Authentifizierung mit der Gmail-API.

3. E-Mail-Versandfunktion

const express = require("express");
const bodyParser = require("body-parser");
const nodemailer = require("nodemailer");
const { google } = require("googleapis");
require("dotenv").config();

const app = express();
app.use(bodyParser.json());
Nach dem Login kopieren

Diese Funktion:

  • Extrahiert Daten aus der Webhook-Nutzlast. Sie können die Nutzlast je nach Bedarf ändern
  • Erhält ein neues Zugriffstoken
  • Erstellt einen Transport mit OAuth2-Authentifizierung
  • Sendet die E-Mail mit benutzerdefinierten Inhalten

4. Webhook-Endpunkt

const oAuth2Client = new google.auth.OAuth2(
  CLIENT_ID,
  CLIENT_SECRET,
  REDIRECT_URI
);
oAuth2Client.setCredentials({ refresh_token: REFRESH_TOKEN });
Nach dem Login kopieren

Unser Webhook-Endpunkt:

  • Empfängt POST-Anfragen
  • Verarbeitet die Webhook-Daten
  • Sendet E-Mails
  • Gibt entsprechende Antworten zurück

Testen

Testen Sie Ihren Webhook mit Curl oder Postman:

npm install express body-parser nodemailer googleapis dotenv
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fehlerbehebung

Häufige Probleme und Lösungen:

  1. Authentifizierungsfehler: Überprüfen Sie Ihre OAuth2-Anmeldeinformationen
  2. Token-Ablauf: Stellen Sie sicher, dass das Aktualisierungstoken gültig ist
  3. Fehlende Daten: Webhook-Nutzlast validieren

Abschluss

Sie verfügen jetzt über ein sicheres, OAuth2-authentifiziertes E-Mail-Benachrichtigungssystem! Diese Implementierung bietet eine solide Grundlage für den Aufbau komplexerer Benachrichtigungssysteme bei gleichzeitiger Wahrung von Sicherheit und Zuverlässigkeit.

Ich hoffe, dieser Beitrag hilft Ihnen beim Einrichten des E-Mail-Dienstes.

Viel Spaß beim Codieren! ?

Das obige ist der detaillierte Inhalt vonErstellen Sie einen professionellen E-Mail-Dienst: Gmail OAuth Express Webhooks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!