Penyebab kode refresh token Google API hilang
Teman teman developer, mungkin dari kalian ada yang pernah mengalami kasus serupa. Ini terjadi ketika netzku mendaptkan pelanggan yang ingin integrasi bot mereka ke Google Spreadsheet, dan Google Drive.
Seperti biasa untuk dapat terhubung ke layanan produk Google, kita terlebih dahulu harus membuat akun Google developer di google cloud. Prosesnya cukup rumit ya kan, mulai dari membuat akun console, menyiapkan project baru, membuat kredensial di dalam project tersebut.
Ada dua kredensial yang di gunakan, mau pilih mana antara API Token atau Auth 2.0 keduanya mempunyai kegunaan dan izin akses yang berbeda. Kredeensial Auht 2.0 adalah yang paling sering di gunakan.
Sebelum dapat menggunakan lumayan ribet melakukan setup, masalah pengaturan domain dan redirect url, masalah scope setiap scope harus di tambahkan pada account ini adalah level izin yang di perlukan untuk aplikasi dalam mengakses setiap elemen dari suatu produk.
Tidak lupa juga harus melakukan enable Produc Service ( mengaktifkan layanan misal Google Drive API ), dan terakhir mendapatkan verifikasi atas aplkasi tersebut. Langkah nya sangatlah rumit, ada cara simple dengan membiarkan aplikasi tetap berada di level testing dan juga menambahkan email sebagai tester user untuk dapat mengizinkan autentikasi pertama.
Masalahnya testing user itu punya keterbatasan, kita harus repot menambahkan testing user terus menerus apabila harus berganti akun. Selain itu kode refresh_token yang di berikan hanya dapat bertahan selama 7 hari dan hanya mampu memberikan 100x permintaan refresh_token.
Apa itu refresh_token? buat teman teman developer mungkin tidak sing lagi dengan ini, refresh_token adalah kode unik yang di buat hanya satu kali saja ketika autentikasi pertama berhasil. Kode refresh_token dapat di gunakan untuk memperbaruhi token Google API Client.
Pada mode development kode akses token yang di berikan sangat mudah kadalurasa, pada percobaan kemarin token google hanya bertahan selama 30 menit sebelum akhirnya expired.
Itu artinya kita harus selalu melakukan refresh token sebelum di gunakan. Proses refresh ini membutuhkan satu parameter yaitu refresh_token. Pada google api client yang lebih baru kita dapat memperbaruhi token tanpa menyimpan kode refresh_token yaitu method getRefreshToken.
Meskipun demikian cara seperti itu tetap akan sama, apabila sudah 100x permintaan dilakukan atau batas 7 hari pengguna di minta untuk melakukan autentikassi ulang. Ini sangat merepotkan, mereka harus menghapus applikasi yang terkait di account Google mereka.
Kemudian baru bisa melakukan otentikasi dengan mengklik URL auth 2.0 yang di berikan saat pertama kali login. Di sini muncul promt tidak aman, dan harus mengizninkan beberapa aplikasi untuk mengakses layanan Produk Google atas email akun anda.
Makanya netzku tidak banyak memberikan dukungan terhadap produk-produk Google API. Hanya karena permintaan yang banyak kita jadi mempelajari Google API Client, dari belajar tersebut di peroleh pemahaman baru. Kita bisa tahu kalau token google gampang banget expired, kalau harus refresh token kalau harus ber-urusan dengan perizinan yang rumit.
Buat temen-temen yang mengalami masallah serupa segera lakukan verifikasi aplikasi. Sebelum di verifikassi sebaiknya atur dulu scope atau izin yang ingin di gunakan dalama app tersebut. Setelah itu baru ajukan peninjauan, untuk akses ke data yang senditif seperti Google Analisis, Google Search console, di butuhkan dokumen yang lebih banyak lagi.
Silakan verifikasi aplikasinya agar dapat di gunakan secara publik, dan juga medapatkan hak izin dan token yang lebih lama, Kode refresh toknen penguna pada aplikasi verified akan bertahan selama 1 tahun penuh dan tidak memiliki batasan akses.