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

  1. Membuat Project Pada Google Console
    Console Google
  2. Pilih Create Project
    Create Project
  3. 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
  4. Buat credential
  5. 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

  6. Atur Redirect URL
    Atur redirect url dengan alamat
    http://localhost
    RedirectURL
  7. 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

  1. 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
  2. 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 biru gantilah menjadi clientID yang sudah didapat sebelumnya

    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.
  3. Buka Url
    Buka URL hasil langkah 2 ke Browser, dan pilih Allow/Ijinkan
    Allow/Ijinkan
  4. Simpan Code
    Setelah dialihkan pada halaman localhost, salin URL yang ada, bentuknya seperti dibawah ini
    http://localhost/?code=4/JgHQ0VOwMu3UQKhKAgMATuFGsXXxXXXwXELICu3XRsYXyhCXKJbfjXv2ob-8oEkuerh1ik1Re0l4t2I_Pfyg
    Simpan Teks yang diberi tanda warna biru .

Request Token OAuth2

  1. Buka API TESTER
    Buka API Tester contohnya POSTMAN, buat request dengan method POST ke situs dibawah ini.
    https://www.googleapis.com/oauth2/v4/token
  2. Atur Request
    Isi header & body dari request dengan parameter berikut
    1. code nilainya hasil dari langkah Request Code OAuth2
    2. client_id nilainya hasil dari langkah Membuat OAuth2 Google GmailAPI
    3. client_secret nilainya hasil dari langkah Membuat OAuth2 Google GmailAPI
    4. grant_type isikan authorization_code
    5. redirect_uri isikan http://localhost
    Header Request Body Request
  3. 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!
    Buka KEMANAN/SECURITY Email, jika aplikasi belum muncul ulangi dari langkah 1.

    Google Account Security

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 ENABLE

KESIMPULAN

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.

Saya seorang programmer dengan fokus developer Web dan Android.