Bina Perkhidmatan E-mel Profesional: Gmail OAuth Express Webhooks

Linda Hamilton
Lepaskan: 2024-10-28 02:47:30
asal
120 orang telah melayarinya

Pemberitahuan e-mel adalah penting untuk aplikasi web moden. Dalam panduan ini, kami akan membina perkhidmatan pemberitahuan e-mel yang selamat menggunakan Express.js dan pengesahan OAuth2 Gmail. Perkhidmatan kami akan menerima permintaan webhook dan menghantar e-mel secara automatik berdasarkan data masuk.

Apa yang Kami Bina

Kami akan mencipta pelayan Ekspres yang:

  • Menerima data webhook melalui permintaan POST
  • Mengesah dengan Gmail menggunakan OAuth2
  • Menghantar e-mel tersuai berdasarkan muatan webhook
  • Mengendalikan ralat dengan anggun

Prasyarat

  • Node.js dipasang pada mesin anda
  • Projek Google Cloud Console dengan API Gmail didayakan
  • Kelayakan OAuth2 (ID Pelanggan, Rahsia Pelanggan, Token Segar Semula)
  • Pemahaman asas Express.js dan async/waiit

Persediaan Projek

Mula-mula, pasang pakej yang diperlukan:

npm install express body-parser nodemailer googleapis dotenv
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Buat fail .env dengan kelayakan anda:

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
Salin selepas log masuk
Salin selepas log masuk

Jika anda menghadapi sebarang kesukaran untuk menyediakan bukti kelayakan ini, seperti yang saya lakukan, anda boleh mengikuti langkah di bawah...

Langkah-1: Buat projek Google Cloud baharu:

a. Pergi ke https://console.cloud.google.com/
b. Klik pada lungsur turun projek di bahagian atas halaman
c. Klik "Projek Baharu"
d. Masukkan nama projek dan klik "Buat"

Build a Professional Email Service: Gmail OAuth Express   Webhooks

Langkah-2: Dayakan API Gmail:
a. Di bar sisi kiri, pergi ke "API & Perkhidmatan" > "Perpustakaan"
b. Cari "API Gmail"
c. Klik pada "API Gmail" dan kemudian klik "Dayakan"

Build a Professional Email Service: Gmail OAuth Express   Webhooks


Langkah-3: Konfigurasikan skrin persetujuan OAuth:
a. Pergi ke "API & Perkhidmatan" > "Skrin persetujuan OAuth"
b. Pilih "Luaran" sebagai jenis pengguna dan klik "Buat"
c. Isikan medan yang diperlukan:
- Nama apl: [Nama apl anda]
- E-mel sokongan pengguna: [E-mel anda]
- Maklumat hubungan pembangun: [E-mel anda]
d. Klik "Simpan dan Teruskan"
e. Pada halaman "Skop", klik "Tambah atau Alih Keluar Skop"
f. Cari dan pilih skop "https://mail.google.com/"
g. Klik "Kemas kini" dan kemudian "Simpan dan Teruskan"
h. Pada halaman "Uji pengguna", klik "Tambah Pengguna"
i. Tambahkan alamat Gmail anda dan klik "Simpan dan Teruskan"
j. Semak ringkasan dan klik "Kembali ke Papan Pemuka"


Langkah-4: Buat bukti kelayakan OAuth2:
a. Pergi ke "API & Perkhidmatan" > "Tauliah"
b. Klik "Buat Bukti Kelayakan" > "ID pelanggan OAuth"
c. Pilih "Aplikasi web" sebagai jenis aplikasi
d. Nama: [Nama apl anda]
e. Asal JavaScript yang dibenarkan: Tambahkan domain pelayan anda (cth., http://localhost:3000 untuk pembangunan setempat)
Build a Professional Email Service: Gmail OAuth Express   Webhooks
f. URI ubah hala yang dibenarkan:
- Tambah: https://developers.google.com/oauthplayground
- Tambahkan URL panggil balik pelayan anda jika anda mempunyainya (cth., http://localhost:3000/auth/google/callback)
g. Klik "Buat"
h. Pop timbul akan menunjukkan ID Pelanggan dan Rahsia Pelanggan anda. Simpan ini dengan selamat.


Langkah-5: Dapatkan Token Muat Semula baharu:
a. Pergi ke https://developers.google.com/oauthplayground/

Build a Professional Email Service: Gmail OAuth Express   Webhooks

b. Klik ikon gear (Seperti Tetapan) di penjuru kanan sebelah atas
c. Klik pada kotak semak "Gunakan bukti kelayakan OAuth anda sendiri"
d. Masukkan ID Pelanggan dan Rahsia Pelanggan baharu anda
e. Tutup tetapan
f. Di bar sisi kiri, cari "Gmail API v1"
g. Pilih https://mail.google.com/
h. Klik "Izinkan API"
i. Pilih akaun Google anda dan berikan kebenaran yang diminta
j. Pada skrin seterusnya, klik "Tukar kod kebenaran untuk token"
k. Salin "Token Segar Semula" daripada respons

Jika anda menghadapi sebarang isu semasa proses ini atau semasa menguji fungsi e-mel, sila berikan mesej ralat atau gelagat tertentu yang anda lihat dalam ulasan.


Kod Diterangkan

Mari kita pecahkan langkah demi langkah pelaksanaan:

1. Persediaan Awal dan Ketergantungan

npm install express body-parser nodemailer googleapis dotenv
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Bahagian ini menyediakan pelayan Express kami dan mengimport kebergantungan yang diperlukan. Kami menggunakan body-parser untuk menghuraikan permintaan JSON dan dotenv untuk mengurus pembolehubah persekitaran.

2. Konfigurasi OAuth2

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
Salin selepas log masuk
Salin selepas log masuk

Kami mencipta klien OAuth2 menggunakan pustaka pengesahan Google. Ini mengendalikan penyegaran dan pengesahan token dengan API Gmail.

3. Fungsi Menghantar E-mel

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());
Salin selepas log masuk

Fungsi ini:

  • Mengekstrak data daripada muatan webhook, anda boleh mengubah suai muatan berdasarkan keperluan
  • Mendapat token akses baharu
  • Mencipta pengangkutan dengan pengesahan OAuth2
  • Menghantar e-mel dengan kandungan tersuai

4. Titik Akhir Webhook

const oAuth2Client = new google.auth.OAuth2(
  CLIENT_ID,
  CLIENT_SECRET,
  REDIRECT_URI
);
oAuth2Client.setCredentials({ refresh_token: REFRESH_TOKEN });
Salin selepas log masuk

Titik akhir webhook kami:

  • Menerima permintaan POST
  • Memproses data webhook
  • Menghantar e-mel
  • Mengembalikan respons yang sesuai

Menguji

Uji webhook anda menggunakan curl atau Posmen:

npm install express body-parser nodemailer googleapis dotenv
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Menyelesaikan masalah

Isu dan penyelesaian biasa:

  1. Ralat Pengesahan: Semak kelayakan OAuth2 anda
  2. Tamat Tempoh Token: Pastikan token muat semula adalah sah
  3. Data Tiada: Sahkan muatan webhook

Kesimpulan

Anda kini mempunyai sistem pemberitahuan e-mel yang selamat, OAuth2-yang disahkan! Pelaksanaan ini menyediakan asas yang kukuh untuk membina sistem pemberitahuan yang lebih kompleks sambil mengekalkan keselamatan dan kebolehpercayaan.

Semoga siaran ini berguna untuk anda menyediakan perkhidmatan e-mel.

Selamat pengekodan! ?

Atas ialah kandungan terperinci Bina Perkhidmatan E-mel Profesional: Gmail OAuth Express Webhooks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!