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.
Kami akan mencipta pelayan Ekspres yang:
Mula-mula, pasang pakej yang diperlukan:
npm install express body-parser nodemailer googleapis dotenv
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
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"
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"
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)
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/
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.
Mari kita pecahkan langkah demi langkah pelaksanaan:
npm install express body-parser nodemailer googleapis dotenv
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.
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
Kami mencipta klien OAuth2 menggunakan pustaka pengesahan Google. Ini mengendalikan penyegaran dan pengesahan token dengan API Gmail.
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());
Fungsi ini:
const oAuth2Client = new google.auth.OAuth2( CLIENT_ID, CLIENT_SECRET, REDIRECT_URI ); oAuth2Client.setCredentials({ refresh_token: REFRESH_TOKEN });
Titik akhir webhook kami:
Uji webhook anda menggunakan curl atau Posmen:
npm install express body-parser nodemailer googleapis dotenv
Isu dan penyelesaian biasa:
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!