Kenapa susah bikin program yang pakai API Google?
Banyak dari teman-teman yang bertanya mengenai bot telegram yang terhubung ke spreadsheet. Dari sejak tahun 2022 tiada habisnya. Mereka meminta untuk membangun bot custom dengan memanfaatkan Google Spreadsheet sebagai database utama.
Sebenarnya, penggunaan Google Spreadsheet sebagai database bisa-bisa saja. Tapi tidak bisa di manfaatkan untuk kebutuhan utama, karena adanya banyak batasan yang di berikan oleh Google Sheet.
Google Sheet membatasi permintaan tulis data ke sheet, selain membatasi tulis data ke sheet kita juga sulit banget untuk melakukan query contohnya mengambil data-data tertentu untuk di kirimkan ke telegram. Ini karena sheet tidak mendukung lebih banyak fitur query seperti DBMS, meskipun anda mendapatkan kontrol penuh terhadap data batasan yang di berikan membuat bot kurang leluasa.
Sebelum menggunakan anda harus terlebih dahulu membuat akun google developer console, membuat project baru, membuat aplikasi baru, melakukan enable atau mengaktifkan produk google yang akan di pakai, membuat credential. Ada dua credential yang di butuhkan 1 api keys, kedua Akun otentikasi 2.0
Selah itu aplikasi harus di ajukan untuk proses peninjauan verifikasi. Tapi jika di gunakan di bawah 100 users, aplikasi tidak perlu mendapatkan verifikasi, anda bisa menambahkan email sebagai testing user dengan segala keterbatasanya. Ini akan menampilkan promt tidak aman atau terkadang berkendala dengan perizinan, berikut ini batasan yang akan anda terima :
Batasan terhadap security jadi alasan utama. Saat ingin menggunakan Google Sheet kita harus membuat akun google developer console, akun ini digunakan untuk mendaftarkan project project baru yang nantinya dapat di gunakan untuk menerbitkan token akses pengguna.
Token akses ini di gunakan untuk berkomunikasi dengan layanan API Google, mekanisme penerapan scope adalah hal terumit. Banyak orang yang susah memahami bagaimana menerapkan scope yang benar untuk dapat menggunakan layanan produk API.
Scope adalah suatu perizinan yang di berikan kepada kode token yang akan di generate, sehingga ia dapat berinteraksi atau menggunakan produk atau layanan yang di inginkan. Contoh nya spreadsheet, analistic, Google Maps API, dan sebagainya. Satu produk dapat memiliki lebih dari satu scope, dan tiap scope mempunyai batas izin dan kegunnaan sendiri.
Selain masalah perizinan kita juga wajib membuat aplikasi di sana dan mengajukan peninjauan. Tanpa di ajukan peninjauan aplikasi tidak dapat di gunakan secara publik. Hanya dapat di gunakan sebagai internal saja, cara ini dapat di capai dengan menggunakan metode penambahan email sebagai testing user.
Perlu di ketahui, testing user mempunyai keterbatasan dalam hal perizinan. Berdasarkan sumber yang saya rangkum dari dialog percakapan stackoverflow, Aplikasi unverified mempunyai batasan 100x meminta akses ke refresh token dan hanya dapat bertahan selama 7 hari. Bisa di lihat percakapan selengkapnya di https://stackoverflow.com/questions/74659774/google-oauth-2-0-refresh-token-expiry-how-many-days
Sedangkan aplikasi yang sudah terverifikasi mendapatkan akses unlimited untuk melakukan refresh_token, dan refresh token mampu bertahan selama 180 hari. Ini artinya anda harus selalu mengganti refresh token jika ingin tetap menggunakan aplikasi tersebut.
Mungkin ada yang tanya, kenapa harus menggunakan refresh_token? Ini adalah bagian dari sistem keamanan Google. Token yang di hasilkan setelah otorisasi pertama hanya akan bertahan selama 30 menit saja. Dan jika ingin menggunakanya di kemudian hari token tersebut wajib di refresh terlebih dahulu sebelum di gunakan, proses refresh nya membutuhkan refresh token.
Dua parameter antara token dan refresh token ini didapatkan saat otorisasi pertama. Dimana anda pertama kali mengizinkan aplikasi untuk berinteraksi dengan account google dan mengizinkan aplikasi tersebut menggunakan produk google di atas akun anda.
Semua kerumitan tersebut dapat di atasi dengan membuat akun developer tunggal yang di kelolah oleh saya sendiri. Rintanganya adalah sulit untuk mendapatkan perizinan jika ingin menggunakan beberapa layanan APi tingkat tinggi dan permintaan untuk mendapatkan data publik dari pengguna.
Jika anda menemukan developer yang mau membuatkann aplikasi bot telegram yang terhubung ke spreadsheet wajib dilihat pendekatan apa yang mereka gunakan. Kalau masih menggunakan unverified aplikasi, bersiaplah untuk menerima kenyataan yang rumit.
Developer tentu tidak mau di repotkan akibat batasan-batasan yang anda terima, anda harus repot sendiri melakukan setup seting sana sini. Dan cukup menyita waktu, faktanya bagi user baru yakin bakalan planga plongo. Soal nya layanan Google developer itu banyak, letak menu-menu di sana cukup sulit di jangkau.
Orang harus belajar try error fix untuk mendapatkan minimum pengalaman agar bisa bekerja dengan Google API client. Sampai di sini apakah anda masih ingin membuat bot telegram berbasis spreadsheet? Jika iya, silakan contact saya di @ryanx telegram.