Cara Membuat Autentikasi OAuth2 untuk Google Gmail API
LATAR BELAKANG
Gmail adalah platform layanan email gratis dari perusahaan Google. Komunikasi melalui email saat ini masih menjadi pilihan bagi perusahaan kepada pelanggannya untuk memberikan informasi kepada pelanggan baik secara manual oleh customer service maupun otomatis dengan sistem perangkat lunak yang ada. Layanan pengirim email otomatis bermunculan. Namun tentu saja semuanya berbayar jika untuk perusahaan kecil ini cukup merugikan, sehingga tidak heran jika bermunculan pertanyaan bagaimana mengirim email secara otomatis dengan gmail dan untungnya saja saat ini google sudah membuka Gmail API yang bisa dimanfaatkan untuk mengirim email secara otomatis.
Namun sayangnya mulai tahun 2022, Google resmi menonaktifkan layanan SMTP melalui metode LESS SECURE APP. Gmail API menjadi wajib jika masih ingin menggunakan SMTP milik Google. Autentikasi tambahan diperlukan untuk mengirim email, satu-satunya cara yang dapat dipakai untuk mendapatkan otorisasi tersebut adalah dengan metode OAuth 2.
PEMBAHASAN
Metode OAuth 2 digunakan untuk mendapatkan accessToken dan refreshToken yang berguna untuk mengirim email secara otomatis. Metode ini lebih aman dibanding dengan metode SMTP(Simple Mail Transfer Protocol) biasa karena pada metode SMTP biasa harus menuliskan kata sandi dari email yang tidak aman karena bisa di ekstraksi. Demi keamanan penulis menganggap bahwa metode ini lebih aman karena tidak meninggalkan kata sandi melainkan hanya accessToken dan refreshToken saja.
Membuat OAuth2 Google GmailAPI
-
Membuat Project Pada Google Console
Console Google -
Pilih Create Project
Create Project - Buat OAuth consent Screen
Setelah berhasil Create Project akan diarahkan pada OAuth consent Screen, jika tidak diarahkan otomatis maka buka secara manual pada menu OAuth consent Screen. Isikan informasi yang diminta, pada bagian Scopes tambahkan scope https://www.googleapis.com/auth/gmail.send
Scopes - Buat credential
-
Pilih OAuth Client ID
OAuth Client ID
, kemudian pilih saja yang Other dan berikan sebuah nama
Other
Tidak Ada Menu OTHER!
Nampaknya menu other sudah dihapus, bisa diganti dengan cara memilih Web Application -
Atur Redirect URL
Atur redirect url dengan alamatRedirectURLhttp://localhost
-
Simpan clientID dan clientSecret
Client ID & Secret
Proses membuat OAuth2 Google GmailAPI sudah selesai, clientID dan clientSecret sudah dapat. OAuth2 request bisa dilakukan untuk mendapatkan accessToken dan refreshToken yang berfungsi untuk proses OAuth2 saat mengirim email nanti.
Request Code OAuth2
-
Buka Browser
Buka browser, saat membuka browser jangan aktifkan xampp maupun aplikasi serupa misalkan laragon. karena hasilnya akan hilang jika browser bisa mengakses http://localhost -
Buat Url
https://accounts.google.com/o/oauth2/v2/auth?client_id=187637922392-nm8r2q89o9gub1ftmuos32coutiumkt1.apps.googleusercontent.com&response_type=code&scope=https://www.googleapis.com/auth/gmail.send&redirect_uri=http://localhost&access_type=offline
Teks yang diberi tanda warna hijau gantilah sesuai dengan kebutuhan, karena layanan yang dibutuhkan untuk kirim email saja maka tidak perlu diganti namun jika ada keperluan lain bisa cari bentuk lainnya melalui tautan ini.
-
Buka Url
Buka URL hasil langkah 2 ke Browser, dan pilih Allow/Ijinkan
Allow/Ijinkan -
Simpan Code
Setelah dialihkan pada halaman localhost, salin URL yang ada, bentuknya seperti dibawah inihttp://localhost/?code=4/JgHQ0VOwMu3UQKhKAgMATuFGsXXxXXXwXELICu3XRsYXyhCXKJbfjXv2ob-8oEkuerh1ik1Re0l4t2I_Pfyg
Request Token OAuth2
-
Buka API TESTER
Buka API Tester contohnya POSTMAN, buat request dengan method POST ke situs dibawah ini.https://www.googleapis.com/oauth2/v4/token
-
Atur Request
Isi header & body dari request dengan parameter berikut
- code nilainya hasil dari langkah Request Code OAuth2
- client_id nilainya hasil dari langkah Membuat OAuth2 Google GmailAPI
- client_secret nilainya hasil dari langkah Membuat OAuth2 Google GmailAPI
- grant_type isikan authorization_code
- redirect_uri isikan http://localhost
-
Send Request
Buat Request API dengan cara pilih SEND / REQUEST, kemudian simpan baik-baik access_token dan refresh_token yang muncul dari hasil respon. token ini akan digunakan setiap kali GmailAPI digunakan.
Contoh Respon
JIKA BAD REQUEST && INVALID GRANT!
Google Account Security
Buka KEMANAN/SECURITY Email, jika aplikasi belum muncul ulangi dari langkah 1.
Sebelum dapat digunakan Projek GMAILAPI tadi perlu diaktifkan dahulu dengan cara mengaktifkan layanan GMAIL API. Caranya adalah dengan masuk menu library, cari GMAILAPI kemudian pilih enabled.
GMAIL API ENABLEKESIMPULAN
Kini layanan kirim email dengan GmailAPI telah bisa digunakan untuk dikustomisasi menggunakan berbagai bahasa pemrograman. Penulis membuat contoh dengan bahasa pemrograman PHP disini. Jika ada pertanyaan dapat diajukan melalui media sosial penulis yang tertera pada Widget Blog ini
Warning!
Jika belum dibuat menjadi "publik" dengan persetujuan Google akses token hanya berlaku selama 7 hari. Langkah pada artikel ini harus diulangi mulai dari Request Code OAuth2.
Gabung dalam percakapan