Google APIs : Cara Mendapatkan OAuth 2 API Token

Google merupakan sebuah layanan mesin pencari pada awalnya, tetapi sekarang lebih dari itu google sudah menjadi raksasa teknologi sekarang ini, dengan berbagai layanan yang beragam.Contohnya android, youtube, google drive, google map, dan blogger yang saat ini saya gunakan.

Selain itu beberapa tahun terakhir google sedang gencar-gencarnya untuk promosi jasa google cloudnya, yaitu sebuah kemampuan server milik google yang dapat membantu menyimpan, mengolah, dan menyediakan data yang kita inginkan dengan cepat, ini semua di dukung dengan komputasi dari server google. Dengan google cloud perusahaan dari yang kecil sampai yang sudah mendunia tidak perlu mengelola server mereka sendiri yang tentu akan membuang waktu dan biaya.

Kita tidak usah bicara google cloud dulu, karena itu sudah terlalu canggih dan seharusnya hanya sering digunakan oleh perusahaan besar saja, sekarang kita akan memanfaatkan fasilitas gratis google saja, yang sering kita gunakan sehari-hari, khusus nya dalam pengembangan suatu aplikasi. Mungkin sobat pernah ingin menggunakan data pribadinya misalnya video youtube, postingan blogger, dan lain sebagainya.

Hampir semua layanan google sebenarnya menyediakan API (application programming interface) untuk kita akses datanya, supaya bisa disimpan atau ditampilkan di aplikasi buatan kita. Untuk mengakses data tersebut yang saya tahu layanan google menyediakan 2 jenis cara pengaksesan yaitu menggunakan API key dan OAuth2.

Apa perbedaan Api Key dan OAuth2, menurut saya perbedaannya saat menggunakan API key kita hanya bisa mengakses data yang publik saja seperti google maps, postingan blogger, subcriber youtube dan lainnya, sedangkan dengan OAuth2 selain data publik kita bisa juga mengakses data pribadi pengguna, tentunya dengan  meminta izin terlebih dahulu.

Saya akan menjelaskan alur kerja Auth2 (koreksi ya kalau salah),  kalau yang saya tau OAuth2 adalah mekanisme pemberian kuasa (otorisasi) ke aplikasi pihak ke 3 untuk menggunakan  data yang kita miliki, contoh yang paling sering kita temui adalah saat ingin login ke suatu website, dan ternyata website tersebut mempunyai fitur untuk login menggunakan google, maka saat sobat klik login menggunakan google akan muncul jendela baru seperti ini.

Dan saat kita memilih akun dan klik tombol izinkan (yang sepertinya tahapan ini sudah menghilang) maka google akan mengirimkan kode acak (dengan url callback) ke website pihak ke 3 tersebut dan kode tersebut digunakan lagi untuk meminta access token ke server google dan barulah access token tersebut digunakan untuk mengakses data sobat (seperti email, nama, foto profil, dll), lalu data itu  diolah agar memungkinkan terjadinya login otomatis dengan akun google yang kita miliki.

Untuk mendapatkan acces token sobat perlu mendaftarkan aplikasi, setelah mendaftar maka sobat akan mendapatkan client id dan client secret yang akan digunakan sebagai identitas aplikasi, caranya cukup mudah kok sobat bisa mengunjungi dokumentasi layanan google masing-masing, disana terdapat tutorial yang akan memandu sobat untuk mendapatkannya, senangnya lagi kita bisa mendapatkannya secara gratis walaupun ada batasan koutanya sih. 

Namun berdasarkan pengalaman saya, setelah mendapatkan client id dan client secret, saya kesusahan untuk mendapatkan access token khususnya bagi pemula seperti saya, tetapi setelah bekerja keras saya mendapatkan tutorial di internet yaitu cara susah (dengan pemrograman), dan cara mudahnya dengan bantuan website yang disediakan google.

Menurut saya cara susah  (dengan pemrograman) cocok untuk sobat yang ingin mengakses data pengguna, jadi setiap pengguna yang ingin mengakses aplikasi kita harus memberikan izin terlebih dahulu agar aplikasi kita bisa mengakses datanya, contohnya seperti fitur "login dengan google" yang sudah dijelaskan sebelumnya. 

Sedangkan cara mudah tutorial ini cocok untuk sobat yang ingin mengakses data akun googlenya sendiri, bukan data orang lain, karena hasil akhirnya nanti kita akan langsung mendapatkan access token, jadi kita tidak perlu login lagi dan dan memberi izin berkali kali (ada juga sih halaman izinnya tapi hanya sekali saja). 

Sayangnya pada artikel ini saya akan menyampaikan cara mudahnya saja, untuk cara susahnya sobat bisa mencarinya di google kok yang bahasa indonesia juga ada. Tidak usah panjang lebar lagi, sobat bisa ikuti tutorial cara mendapatkan OAuth 2 API Token  dibawah ini.

  1. Pertama sobat harus sudah login dan silahkan kunjungi link berikut ini https://console.cloud.google.com/home/dashboard. Setelah itu pergi ke bagian API & Layanan > Library.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  2. Setelah terbuka halaman seperti gambar dibawah ini, silahkan cari layanan yang ingin sobat gunakan, di tutorial ini saya akan menggunakan blogger API.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  3. Setelah ditemukan klik layanannya,lalu jangan lupa klik tombol Aktifkan, langkah ini bertujuan untuk mengaktifkan layanan API Blogger dan bisa kita gunakan.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  4. Biasanya setelah mengaktifkan API kita akan dialihkan ke halaman lain, seperti gambar dibawah ini, silahkan klik menu kredensial di kiri bawah.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  5. Okedeh sekarang mari kita buat client id dan clinet secret, yang akan digunakan untuk mendapatkan akses token nantinya.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  6. Wah ternyata sebelum membuat client id dan client secret kita disuruh membuat persetujuan dulu nih untuk menggunakan layanan google, disini pada umumnya kita hanya bisa menggunakan user type eksternal, karena untuk internal biasanya emailnya dibuat dengan G Suite yang tentunya berbayar, untuk penjelasan lebih lanjut silahkan sobat baca sendiri ya di halamannya.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  7. Setelah klik buat maka, akan ada layar seperti gambar dibawah ini, penting sih di isi semua, karena formulir tersebut nanti akan diverifikasi oleh google dan penting untuk publikasi aplikasi nantinya. Tetapi karena fokus di artikel ini untuk mendapatkan akses token dari OAuth2 maka untuk sekarang saya hanya mengisi nama aplikasinya saja yaitu "Percobaan", kekurangan jika formulir tidak di isi dan belum verifikasi ada batasan-batasan penggunaan untuk project yang sobat buat.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  8. Selesai mengisi dan membuat persetujuan oauth, silahkan ulangi langkah no 5. Sekarang kita sudah bisa membuat client id dan client, silahkan isi jenis aplikasi ke "aplikasi web" dan url pengalihan ke https://developers.google.com/oauthplayground. 

    Saya memilih aplikasi web karena itulah cara yang baru saya tau sekarang ini, untuk android dan aplikasi lainnya sepertinya caranya mendapatkan akses tokennya berbeda lagi dan kebetulan saya belum butuh untuk mempelajarinya.

    Lalu kenapa kita harus mengisi url pengalihan ke https://developers.google.com/oauthplayground ? Silahkan sobat lanjut ke langkah selanjutnya, karena ada sedikit penjelasannya disana.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  9. Setelah membuat client id dan client maka sobat akan dialihkan ke halaman detailnya nya, disini kita masih bisa mengedit apa saja yang sudah kita isi tadi, dan yang paling penting 2 data penting yang akan kita gunakan yaitu

    Client ID dan Rahasia Client (Client Secret).

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  10. Selanjutnya sobat buka tab baru dan buka halaman https://developers.google.com/oauthplayground, akan terbuka halaman seperti gambar dibawah ini, lalu silahkan sobat klik tombol pengaturan dipojok kanan atas.

    Lalu centang pada Use your own OAuth credentials, silahkan isi client id dan client secret sesuai dengan data yang sudah kita dapatkan pada langkah sebelumnya, 

    Jika sobat perhatikan ada catatan di bagian atas isian client id disana kita diperingatkan harus menambahkan link https://developers.google.com/oauthplayground sebagai url pengalihan yang valid untuk bisa menggunakannya dan tidak kebetulan kita sudah melakukannya pada langkah sebelumnya. Jika sudah selesai mengisinya silahkan sobat klik tombol close pada bagian bawahnya.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  11. Beralih ke bagian kiri halaman disana terdapat banyak sekali layanan google yang kita bisa gunakan, karena ditutorial ini saya ingin menggunakan Blogger API, maka saya mencari dan memilih blogger api dan mencentang semua hak aksesnya (atau biasa dibilang scope nya).

    Setelah sudah yakin dengan pilihannya, silahkan klik tombol Authorize APIs.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  12. Maka sobat akan dialihkan ke halaman login google, silahkan pilih akun google yang ingin digunakan, lalu google akan mengeluarkan peringatan permintaan izin akses data, ya tentu saja sobat bisa klik Izinkan.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  13. Setelah sudah dizinkan kita akan dialihkan lagi ke halaman OAuth2 Playground, disini kita sudah mendapatkan authorization code yang bisa ditukarkan dengan refresh token dan access token. Caranya menukarkannya gampang sekali, tinggal klik tombol Exchange authorization code for tokens.

    Selain itu, coba sobat perhatikan bagian yang saya kotak merah, sebenarnya kita bisa saja tidak usah memasukkan client id dan client secret pada langkah ke 10, tetapi kalau otomatis begitu refresh token akan hanya berlaku selama 24 jam, dan jika tidak ingin itu terjadi maka harus menginputkan client id dan client secret secara manual seperti yang sudah kita lakukan sebelumnya.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  14. Sekarang refresh token dan access token sudah didapatkan, saya sudah bisa menggunakan access token untuk mengakses data blogger yang saya miliki, untuk cara pengaksesan datanya bisa sobat baca di dokumentasi yang sudah di sediakan google, begitupun juga dengan layanan google lainnya dokumentasinya semuanya sudah disediakan.

    Berbeda dengan refresh token yang kadaluarsa nya paling sebentar bisa sampai 24 jam, kalau access token kadaluarsanya lebih singkat lagi, yaitu hanya satu jam. Untuk mendapatkannya lagi kita harus memintanya lagi ke server google dengan mencantumkan refresh token yang sudah dapatkan.

    Bagaimana cara mendapatkan access token nya lagi ? silahkan sobat coba klik tombol refresh access token, nanti akan dikembalikan data request/response seperti gambar dibawah ini. Disini kita bisa memperhatikan dan meniru request yang diminta keserver google untuk mendapatkan response access token yang kita inginkan.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google
  15. Setelah diterapkan di postman kurang lebihnya akan menjadi seperti gambar dibawah ini, yang kita butuhkan adalah 4 body parameter, yaitu client id, client secret, refresh token dan grand type, sobat bisa ikuti saja penerapannya di postman pada gambar dibawah ini.

    Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google

Pertanyaannya selanjutnya apakah refresh token yang kita dapatkan dengan cara memasukan client id dan client secret secara manual mempunyai kadaluarsa (kalau otomatis kan kadaluarsanya 24 jam) ? jawabannya hampir tidak ada tetapi akan kadaluarsa dengan beberapa kondisi yang dijelaskan oleh screenshot halaman dibawah ini. 

Cara Mendapatkan OAuth 2 API Token untuk Semua Layanan Google

Atau untuk lebih jelasnya sobat bisa membacanya langsung dihalaman resminya di https://developers.google.com/identity/protocols/oauth2#expiration

Itulah caranya mendapatkan OAuth2 API Token, sobat bisa memanfaatkan refresh token dan access token yang didapatkan untuk mengakses data sobat kapanpun, untuk mendapatkan access token yang terbaru secara otomatis saya sarankan sobat jalankan script program dibackground contoh paling sederhana seperti cronjob hosting agar access token bisa diperbarui sebelum mencapai masa kadaluarsanya.

Sedikit saran sebelum menutup artikel ini, saat membaca dokumentasi pengaksesan data sebaiknya jika kesusahan sobat cari juga caranya di internet dan repository github, alasannya entah kenapa di setiap situs dokumentasi layanan google bahasa pemrograman yang ditampilkan untuk akses data googlenya selalu tidak konsisten.

Misalnya di situs dokumentasi layanan A ada bahasa pemrograman PHP, tetapi saat pergi ke situs dokumentasi layanan B bahasa pemrograman PHP tidak ada. Setelah saya cari lagi ternyata ada contoh cara implementasinya di akun repository Github milik google, tetapi masih kurang juga sih, soalnya contoh implementasi programnya pada beberapa fitur tidak ada.

Sekian artikel ini saya tulis, jika ada kesalahan penyampaian mohon dikoreksi ya, dan kalau penjelasannya agak muter-muter mohon di maafkan, yang terakhir jika ada pertanyaan atau ungkapan yang ingin sobat sampaikan bisa berkomentar dibawah. Terima kasih 

Tidak ada komentar:

Posting Komentar

Berkomentarlah sesuai dengan isi artikel, no iklan.