1. Menggunakan Google Workspace API
Codelab ini memperkenalkan cara menggunakan Google Workspace (sebelumnya G Suite) HTTP-based RESTful API. Contoh ini akan dilakukan di Python agar lebih ringkas dan tersedia, tetapi Anda juga dapat memilih untuk menggunakan bahasa pengembangan favorit Anda. Anda akan mempelajari topik pengantar seperti cara menggunakan konsol developer untuk membuat/mengelola project, mendapatkan kredensial otorisasi, dan menginstal library klien API. Setelah formalitas selesai, Anda akan menulis aplikasi untuk menampilkan 100 file & folder pertama di Google Drive Anda menggunakan API-nya.
Yang akan Anda pelajari
- Membuat project menggunakan Google/Cloud Developers Console
- Mendapatkan & menggunakan kredensial aplikasi OAuth2 di aplikasi Anda
- Mempelajari cara menggunakan Library Klien Google API
- Menulis aplikasi menggunakan Google & Google Workspace API
- Mendapatkan informasi file dan folder dengan Google Drive API
Yang Anda butuhkan
- Akses ke internet dan browser web
- Akun Google (akun Google Workspace mungkin memerlukan persetujuan administrator)
- Memahami sistem yang kompatibel dengan POSIX seperti Linux & Mac OS X
- Kemampuan untuk membuat file sumber dengan editor kode atau perintah shell.
- Keahlian dasar dalam Python (2 atau 3), tetapi Anda dapat menggunakan bahasa apa pun yang didukung
- Beberapa file dan/atau folder di Google Drive Anda
2. Survei
Bagaimana Anda akan menggunakan tutorial codelab ini?
Bagaimana penilaian Anda terhadap pengalaman menggunakan alat & API developer Google Workspace?
3. Ringkasan
Dalam codelab ini, Anda akan mempelajari cara:
- Download library klien Google API untuk Python
- Buat project baru di Konsol Developer Google/Cloud
- Mendapatkan kredensial yang diperlukan untuk aplikasi Anda
- Gunakan kredensial tersebut untuk mengakses Google Drive API
Jika Anda memilih untuk tidak menggunakan Python, Anda dapat menerapkan codelab di alat pengembangan favorit Anda (library klien bahasa yang didukung tersedia di sini) dan cukup merujuk ke contoh Python sebagai kode semu (yang dapat dieksekusi).
4. Mengonfirmasi lingkungan Python
Codelab ini mengharuskan Anda menggunakan bahasa Python (meskipun banyak bahasa yang didukung oleh library klien Google API, jadi silakan buat sesuatu yang setara di alat pengembangan favorit Anda dan cukup gunakan Python sebagai kode semu). Secara khusus, codelab ini mendukung Python 2 dan 3, namun sebaiknya Anda beralih ke 3.x sesegera mungkin.
Cloud Shell adalah kemudahan yang tersedia bagi pengguna secara langsung dari Cloud Console dan tidak memerlukan lingkungan pengembangan lokal, jadi tutorial ini dapat dilakukan sepenuhnya di cloud dengan browser web. Cloud Shell sangat berguna jika Anda sedang mengembangkan atau berencana untuk terus mengembangkan dengan produk & API GCP. Lebih khusus untuk codelab ini, Cloud Shell telah menginstal kedua versi Python.
Cloud Shell juga telah menginstal IPython... ini adalah penafsir Python interaktif tingkat tinggi yang kami rekomendasikan, terutama jika Anda menjadi bagian dari komunitas data science atau machine learning. Jika ya, IPython adalah penafsir default untuk Jupyter Notebooks serta Colab, Jupyter Notebooks yang dihosting oleh Google Research.
IPython lebih dulu mendukung penafsir Python 3, tetapi bisa mendukung Python 2 jika 3.x tidak tersedia. IPython dapat diakses dari Cloud Shell, tetapi juga dapat diinstal di lingkungan pengembangan lokal. Keluar dengan ^D (Ctrl-d) dan terima tawaran untuk keluar. Contoh output ipython awal akan terlihat seperti ini:
$ ipython Python 3.7.3 (default, Mar 4 2020, 23:11:43) Type 'copyright', 'credits' or 'license' for more information IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
Jika IPython bukan preferensi Anda, penggunaan penafsir interaktif Python standar (baik di Cloud Shell atau lingkungan pengembangan lokal Anda) sangat dapat diterima (juga keluar dengan ^D):
$ python Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ python3 Python 3.7.3 (default, Mar 10 2020, 02:33:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Codelab ini juga mengasumsikan bahwa Anda memiliki alat penginstalan pip (pengelola paket Python dan resolver dependensi). Alat ini hadir dalam bentuk paket dengan versi 2.7.9+ atau 3.4+. Jika Anda memiliki versi Python yang lebih lama, lihat panduan ini untuk petunjuk penginstalan. Bergantung pada izin Anda, Anda mungkin perlu memiliki sudo atau akses superuser, tetapi biasanya tidak demikian. Anda juga dapat menggunakan pip2 atau pip3 secara eksplisit untuk menjalankan pip untuk versi Python tertentu.
Bagian selebihnya dari codelab ini mengasumsikan bahwa Anda menggunakan Python 3—petunjuk spesifik akan disediakan untuk Python 2 jika petunjuk tersebut jauh berbeda dari 3.x.
*Membuat dan menggunakan lingkungan virtual
Bagian ini bersifat opsional dan hanya benar-benar diperlukan bagi mereka yang harus menggunakan lingkungan virtual untuk codelab ini (sesuai sidebar peringatan di atas). Jika hanya memiliki Python 3 di komputer, Anda cukup mengeluarkan perintah ini untuk membuat virtualenv yang disebut my_env (Anda dapat memilih nama lain jika diinginkan):
virtualenv my_env
Namun, jika Anda memiliki Python 2 & 3 di komputer, sebaiknya instal virtualenv Python 3 yang dapat Anda lakukan dengan -p flag seperti ini:
virtualenv -p python3 my_env
Masukkan virtualenv yang baru Anda buat dengan "mengaktifkannya" seperti ini:
source my_env/bin/activate
Konfirmasikan bahwa Anda berada di lingkungan tersebut dengan mengamati perintah shell yang sekarang diawali dengan nama lingkungan Anda, yaitu,
(my_env) $
Sekarang Anda semestinya dapat pip install paket apa pun yang diperlukan, mengeksekusi kode dalam lingkungan ini, dll. Manfaat lainnya adalah jika Anda benar-benar mengacaukannya, masuk ke situasi ketika penginstalan Python Anda rusak, dll., Anda dapat menyingkirkan seluruh lingkungan ini tanpa memengaruhi sistem lainnya.
5. Menginstal library klien Google API untuk Python
Codelab ini memerlukan penggunaan library klien Google API untuk Python, sehingga proses penginstalan menjadi sederhana, atau, Anda mungkin tidak perlu melakukan apa pun.
Sebelumnya, kami menyarankan Anda untuk mempertimbangkan penggunaan Cloud Shell demi kenyamanan. Anda dapat menyelesaikan seluruh tutorial dari browser web di cloud. Alasan lain untuk menggunakan Cloud Shell adalah karena banyak alat pengembangan populer dan library yang diperlukan sudah terinstal.
*Menginstal library klien
(opsional) Langkah ini dapat dilewati jika Anda menggunakan Cloud Shell atau lingkungan lokal yang sudah menginstal library klien. Anda hanya perlu melakukan ini jika Anda mengembangkan secara lokal dan belum (atau tidak yakin telah) menginstalnya klien. Cara termudah adalah menggunakan pip (atau pip3) untuk melakukan penginstalan (termasuk memperbarui pip jika diperlukan):
pip install -U pip google-api-python-client oauth2client
Mengonfirmasi penginstalan
Perintah ini menginstal library klien serta paket apa pun yang diperlukan library klien. Entah Anda menggunakan Cloud Shell atau lingkungan Anda sendiri, pastikan library klien diinstal dengan mengimpor paket yang diperlukan, dan pastikan tidak ada error impor (atau output):
python3 -c "import googleapiclient, httplib2, oauth2client"
Jika menggunakan Python 2 (dari Cloud Shell), Anda akan mendapatkan peringatan bahwa dukungan untuk Python 2 sudah tidak digunakan lagi:
******************************************************************************* Python 2 is deprecated. Upgrade to Python 3 as soon as possible. See https://cloud.google.com/python/docs/python2-sunset To suppress this warning, create an empty ~/.cloudshell/no-python-warning file. The command will automatically proceed in seconds or on any key. *******************************************************************************
Setelah berhasil menjalankan perintah "test" impor tersebut (tanpa error/output), Anda siap untuk mulai bekerja dengan Google API.
Ringkasan
Karena ini adalah codelab pengantar, diasumsikan bahwa Anda baru menggunakan API Google dan Google Workspace. Jika Anda sudah berpengalaman membuat project dan membuat "ID klien OAuth" otorisasi pengguna. Jika ya, buat atau gunakan kembali project yang ada, buat atau gunakan kembali ID klien OAuth yang ada, lalu lewati dua modul berikutnya dan langsung buka "Menampilkan aplikasi file & folder Drive Anda" atau langsung buka "Penggunaan devconsole lanjutan" untuk meninjau langkah-langkah tersebut dengan lebih sedikit panduan.
6. Menentukan project di Konsol Cloud
Aplikasi yang menggunakan Google API memerlukan project. API tersebut dikelola di Konsol Developer Google Cloud atau cukup "devconsole". Dalam codelab ini, kita hanya akan menggunakan Google Drive API, jadi kita memiliki link ajaib (di bawah pada Langkah 1) yang:
- Membuka konsol developer
- Memandu Anda membuat project baru (atau memilih project yang sudah ada), dan
- Mengaktifkan Drive API secara otomatis
Ayo kita mulai!
- Buka console.developers.google.com/start/api?id=drive, lalu login ke Akun Google Anda.
- Jika belum memiliki project, Anda akan melihat layar ini untuk menyetujui Persyaratan Layanan Google API:
Setelah Anda menyetujui persyaratan, project baru bernama "Project Saya" akan dibuat, dan Drive API akan otomatis diaktifkan. 3. Jika Anda sudah membuat project (mungkin dari codelab sebelumnya?), Anda akan melihat layar ini:
Saat Anda mengklik menu tarik-turun Create a project, pilih project yang sudah ada atau buat project baru.
Setelah Anda menentukan pilihan (project baru atau yang sudah ada), Drive API akan diaktifkan secara otomatis untuk Anda. 4. Anda akan mengetahui bahwa Drive API telah diaktifkan dengan konfirmasi ini:
5. Klik Buka kredensial untuk melanjutkan ke langkah berikutnya.
7. *Mengotorisasi permintaan API (otorisasi pengguna)
Bagian ini dapat dilewati jika Anda telah membuat kredensial otorisasi akun pengguna dan mengetahui prosesnya. Ini berbeda dengan otorisasi akun layanan yang tekniknya berbeda, jadi lanjutkan di bawah.
Pengantar tentang otorisasi (plus beberapa autentikasi)
Untuk membuat permintaan ke API, aplikasi Anda harus memiliki otorisasi yang tepat. Autentikasi, sebuah kata yang mirip, menjelaskan kredensial login—Anda mengautentikasi diri sendiri saat login ke akun Google dengan login & sandi. Setelah diautentikasi, langkah berikutnya adalah apakah Anda—atau lebih tepatnya, kode Anda,—diotorisasi untuk mengakses data, seperti file blob di Cloud Storage atau file pribadi pengguna di Google Drive.
Google API mendukung beberapa jenis otorisasi, tetapi yang paling umum untuk pengguna Google Workspace API adalah otorisasi pengguna karena aplikasi contoh dalam codelab ini mengakses data milik pengguna akhir. Pengguna akhir tersebut harus memberikan izin kepada aplikasi Anda untuk mengakses datanya. Ini berarti kode Anda harus mendapatkan kredensial OAuth2 akun pengguna.
Untuk mendapatkan kredensial OAuth2 untuk otorisasi pengguna, kembali ke pengelola API dan pilih tab "Kredensial" di navigasi sebelah kiri:
Setelah itu, Anda akan melihat semua kredensial dalam tiga bagian terpisah:
Bagian pertama adalah untuk kunci API, bagian kedua untuk client ID OAuth 2.0, dan bagian ketiga untuk akun layanan OAuth2—kita menggunakan bagian yang di tengah.
Membuat kredensial
Dari halaman Kredensial, klik tombol + Buat Kredensial di bagian atas, yang akan menampilkan dialog tempat Anda memilih "Client ID OAuth:"
Pada layar berikutnya, Anda memiliki 2 tindakan: mengonfigurasi "layar izin" otorisasi aplikasi dan memilih jenis aplikasi:
Jika belum menyetel layar izin, Anda akan melihat peringatan di konsol dan harus menyetelnya sekarang. (Lewati langkah berikutnya ini jika layar izin Anda sudah disetel.)
Layar persetujuan OAuth
Klik "Konfigurasikan layar izin", pilih aplikasi "Eksternal" (atau "Internal" jika Anda adalah pelanggan Google Workspace [sebelumnya "Google Workspace"]):
Perlu diperhatikan, untuk keperluan latihan ini, tidak masalah apa yang Anda pilih karena Anda tidak memublikasikan sampel codelab Anda. Sebagian besar orang akan memilih "Eksternal" untuk diarahkan ke layar yang lebih kompleks, namun Anda hanya perlu mengisi kolom "Nama aplikasi" di bagian atas:
Satu-satunya yang Anda butuhkan saat ini adalah nama aplikasi, jadi pilih seseorang yang mencerminkan codelab yang Anda kerjakan, lalu klik Simpan.
Membuat client ID OAuth (autentikasi akun pengguna)
Sekarang kembali ke tab Kredensial untuk membuat client ID OAuth2. Di sini Anda akan melihat berbagai client ID OAuth yang dapat Anda buat:
Kita sedang mengembangkan alat command line, yaitu Lainnya, jadi pilih itu, lalu klik tombol Buat. Pilih nama client ID yang mencerminkan aplikasi yang sedang Anda buat atau cukup gunakan nama default, yaitu "Klien lain N".
Menyimpan kredensial Anda
- Dialog dengan kredensial baru akan muncul; klik Oke untuk menutup
- Kembali ke halaman Kredensial, scroll ke bawah ke bagian "Client ID OAuth2" lalu cari dan klik ikon download
di ujung kanan bawah client ID yang baru dibuat.
- Tindakan ini akan membuka dialog untuk menyimpan file bernama
client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json, kemungkinan ke folder Download Anda. Sebaiknya persingkat menjadi nama yang lebih mudah seperticlient_secret.json(yang digunakan oleh aplikasi contoh), lalu simpan ke direktori/folder tempat Anda akan membuat aplikasi contoh dalam codelab ini.
Ringkasan
Dengan kredensial di tangan, Anda kini siap mengakses Drive API dari aplikasi Anda, dengan mengingat bahwa tujuan client ID OAuth adalah agar pengguna Anda memberikan izin aplikasi Anda untuk mengakses data mereka di Google Drive.
NOTE: Detail selengkapnya tentang cara membuat project, mengaktifkan API, dan mendapatkan kredensial secara manual, yaitu tanpa menggunakan "wizard" di atas, tersedia setelah selesainya codelab ini untuk dipelajari lebih lanjut.
8. Menampilkan aplikasi file & folder Drive Anda
Baik di lingkungan pengembangan lokal maupun di Cloud Shell, di direktori yang sama tempat file kredensial client_id.json Anda berada, buat file Python baru bernama drive_list.py dan tambahkan baris kode di bawah:
from __future__ import print_function
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
Struktur aplikasi
Ada tiga bagian utama dalam aplikasi ini:
- Impor Python untuk menghadirkan fungsi library
- Mendapatkan kredensial aplikasi
- Mengambil nama file & folder serta MIMEtype di Google Drive pengguna dan menampilkannya
NOTE: Pembahasan mendalam tentang kode dan peninjauan penjelasan baris demi baris tersedia setelah kesimpulan codelab ini untuk dipelajari lebih lanjut.
Menjalankan aplikasi
Beri nama file ini seperti drive_list.py. Saat pertama kali dijalankan, skrip tidak akan memiliki otorisasi untuk mengakses file pengguna di Drive (milik Anda). Outputnya akan terlihat seperti ini dengan eksekusi dijeda:
$ python3 ./drive_list.py /usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Your browser has been opened to visit: https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
Dari lingkungan pengembangan lokal
Skrip command-line dijeda saat jendela browser terbuka dan menampilkan dialog izin OAuth2:

Di sinilah aplikasi meminta izin yang diminta kode dari pengguna (melalui variabel SCOPES). Dalam hal ini, ini adalah kemampuan untuk melihat metadata file dari Google Drive pengguna. Ya, dalam kode Anda, cakupan izin ini muncul sebagai URI, tetapi URI tersebut diterjemahkan ke dalam bahasa yang ditentukan oleh lokal Anda di jendela dialog alur OAuth2. Pengguna harus memberikan otorisasi eksplisit untuk izin yang diminta, jika tidak, bagian "run flow" dari kode akan memunculkan pengecualian, dan skrip tidak diproses lebih lanjut.
NOTE: Beberapa pengguna memiliki beberapa browser, dan permintaan otorisasi mungkin muncul di browser yang tidak disukai. Jika demikian, cukup salin seluruh URL dari jendela browser yang tidak ingin Anda gunakan dan tempelkan ke kolom URL browser yang ingin Anda gunakan.
Dari Cloud Shell
Jika Anda tidak memperhatikan dan menjalankan program di Cloud Shell, tidak ada jendela browser yang muncul, sehingga Anda berhenti bekerja. Ketahui bahwa pesan diagnostik di bagian bawah dimaksudkan untuk Anda... pesan ini:
If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
Saat dijalankan dengan cara ini, Anda akan mendapatkan output berikut:
$ python3 drive_list.py --noauth_local_webserver /usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code Enter verification code:
Dengan mengikuti petunjuk dan membuka tab browser lain dengan URL tersebut, Anda akan mendapatkan pengalaman yang hampir sama dengan yang dijelaskan di atas untuk lingkungan pengembangan lokal. Perbedaan utamanya ada di bagian akhir, di mana Anda akan mendapatkan satu layar lagi dengan kode verifikasi yang harus dimasukkan di Cloud Shell:

Potong dan tempel kode ini ke jendela terminal.
Ringkasan
Setelah pengguna mengklik izinkan dan/atau kode verifikasi ditempelkan ke perintah, aplikasi akan (terus) berjalan sehingga Anda akan melihat output yang terdiri dari file/folder Drive dan MIMEtype-nya. Berikut contoh dari salah satu akun pengujian kami:
$ python3 ./drive_list.py Travel expenses application/vnd.google-apps.spreadsheet Gmail Add-ons codelab application/vnd.google-apps.script Google Workspace Developer Intro application/vnd.google-apps.presentation Baseball Sheets application/vnd.google-apps.folder My Resume application/vnd.google-apps.document . . .
Perhatikan pada eksekusi berikutnya bahwa Anda tidak lagi diminta untuk memberikan otorisasi (karena telah di-cache oleh library auth), dan Anda langsung menuju output. Bukankah menyenangkan melihat dokumen Anda di terminal untuk pertama kalinya? Kami juga berpikir demikian!
9. Kesimpulan
Sekarang Anda siap mempelajari fitur lainnya tentang Drive API atau menjelajahi Google Workspace (Gmail, Google Dokumen, Spreadsheet, Slide, Kalender) dan Google API lainnya (Maps, Analytics, YouTube, dll.). Selamat atas keberhasilan Anda sampai akhir!
Kode yang ditampilkan dalam codelab ini juga tersedia di repo GitHub-nya di github.com/googlecodelabs/gsuite-apis-intro. (Kami berusaha menjaga agar codelab ini tetap sinkron dengan repo.) Siap memulai langkah berikutnya? Berikut adalah berbagai referensi yang dapat Anda akses untuk membantu Anda mempelajari lebih dalam materi yang dibahas dalam codelab ini, atau jika Anda ingin mengasah kemampuan dan mempelajari cara lain untuk mengakses teknologi Google secara terprogram.
Seperti yang telah disinggung sebelumnya, jika Anda bukan developer Python biasa, kami mengundang Anda untuk mengulangi contoh codelab ini dalam bahasa pengembangan favorit Anda. Library klien untuk bahasa yang didukung tersedia di sini.
Studi Tambahan
Setelah Anda memiliki beberapa pengalaman menggunakan Drive API, berikut beberapa latihan yang direkomendasikan untuk mengembangkan keterampilan Anda lebih lanjut:
- File ZIP: Tulis aplikasi yang mencadangkan beberapa arsip ZIP ke Drive, mengekstraknya dengan cepat sehingga setiap nama file ZIP adalah nama folder tempat file tersebut berada. NILAI TAMBAHAN: mendukung arsip ZIP rekursif dalam file ZIP lain dengan folder Drive yang disematkan di dalam folder lain. Jika Anda menyerah, lihat aplikasi contoh Node.js ini.
- Album foto: Tulis awal alat pembuatan album foto yang mengupload beberapa gambar ke Google Drive, mengaturnya ke dalam folder terpisah berdasarkan stempel waktu & geolokasi. NILAI TAMBAHAN: temukan library manipulasi gambar open source dan gabungkan semua foto di setiap folder untuk merepresentasikan peristiwa yang mungkin Anda alami (perjalanan, makan malam, dll.).
- Jelajahi GCP: Tulis aplikasi yang menghubungkan Google Workspace dan Google Cloud Platform (GCP). Tulis alat yang mencadangkan file gambar dari Google Drive ke Google Cloud Storage (GCS), solusi "penyimpanan file di cloud" lainnya. Percaya atau tidak, menggunakan GCS akan lebih sederhana daripada Drive karena library kliennya yang canggih.
- Analisis & rekam: Perluas solusi Anda ke #3 dengan menganalisis setiap gambar yang dicadangkan dengan meneruskannya ke Google Cloud Vision API dan mendapatkan "label" teratas (3, 5, 10) tentang apa yang dilihat API dalam gambar tersebut. Untuk setiap gambar, tulis baris di Google Spreadsheet yang berisi analisis dari Cloud Vision serta lokasi cadangannya di GCS. Jika Anda menyerah, lihat codelab Python ini.
10. Referensi Tambahan
Dokumentasi
- Dokumentasi Google Drive API (REST API & Android native SDK/API)
- Dokumentasi API Google Workspace lainnya
- Dokumentasi Google API lainnya
- Library klien Google API
- Dokumentasi OAuth2
Video terkait dan video umum
- Membuat project Google API baru ( postingan blog & video)
- Peninjauan kode boilerplate otorisasi Python ( video)
- Mencantumkan file Anda di Google Drive ( video, postingan blog)
- Pustaka video Google Drive API
- Seri video Launchpad Online (pendahulu dari...)
- Seri video Google Workspace Dev Show
Berita & info terbaru
- Blog developer Google Workspace
- Twitter developer Google Workspace (@GSuiteDevs)
- Newsletter bulanan developer Google Workspace
Codelab lainnya
Pengantar
- [Apps Script] Pengantar Google Apps Script
Menengah
- [Apps Script] Alat command line CLASP Apps Script
- [Apps Script] Add-on Gmail
- [Apps Script] Add-on Dokumen & GCP Natural Language API
- [Apps Script] Framework bot Hangouts Chat
- [REST API] Alat pelaporan kustom (Sheets API)
- [REST API] Generator slide kustom untuk penganalisis BigQuery lisensi GitHub (Slides+BigQuery API)
Lanjutan
- [REST API] Alur kerja pemrosesan gambar cloud (Drive, Cloud Storage, Cloud Vision, Sheets API)
Aplikasi referensi
- Konverter Markdown ke Google Slide (Slides REST API)
11. *Penjelasan mendetail aplikasi
Bagian opsional ini digunakan sebagai studi mandiri setelah sesi berakhir untuk mengisi kesenjangan yang mungkin muncul atau untuk riset lebih lanjut.
Impor Python untuk menghadirkan fungsi library
from __future__ import print_function
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
- Pernyataan
importpertama memungkinkan kode ini berjalan di Python 2—kode ini dapat dihilangkan sepenuhnya jika Anda hanya menggunakan Python 3. - Salah satu pedoman gaya Python adalah memisahkan impor library standar dan modul pihak ketiga—itulah fungsi baris kosong.
- Tiga impor berikutnya akan membawa class & fungsi yang diperlukan dari library klien Google API... semuanya diperlukan untuk menulis aplikasi ini. Singkatnya, berikut fungsinya:
googleapiclientberfokus pada cara menghubungkan ke Google APIhttplib2menyediakan klien HTTP untuk digunakan aplikasioauth2clientmembantu kami mengelola kredensial OAuth2
Otorisasi dan mendapatkan kredensial aplikasi
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
- Izin aplikasi
SCOPESadalah izin yang akan diminta aplikasi dari pengguna yang menjalankannya. Untuk menjaga keamanan data pengguna, aplikasi tidak dapat berjalan tanpa diberi izin - Praktik terbaiknya adalah menggunakan izin yang paling ketat yang dibutuhkan aplikasi Anda agar dapat berfungsi. Mengapa?
- Bukankah menjengkelkan jika aplikasi meminta banyak izin saat Anda menginstal atau menjalankannya? Tahukah Anda? Sekarang Anda berada di sisi lain, meminta semua izin ini dari pengguna. Penggunaan cakupan yang lebih ketat membuat pengguna merasa lebih nyaman menginstal aplikasi Anda karena Anda meminta lebih sedikit akses.
- Sebagian besar cakupan terlihat seperti URL panjang, dan cakupan metadata Drive tidak terkecuali.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
- Token diperlukan agar aplikasi dapat berkomunikasi dengan server Google. Token valid yang dikembalikan dari Google akan disimpan dalam file penyimpanan token,
storage.json. Jika Anda tidak menyimpan token ini, Anda harus mengizinkan ulang aplikasi setiap kali Anda menjalankannya.
store = file.Storage('storage.json')
- Aplikasi ini pertama-tama memeriksa apakah kita sudah memiliki kredensial yang valid dalam penyimpanan (lihat kondisi pernyataan
if).
creds = store.get()
if not creds or creds.invalid:
- Jika Anda tidak memiliki kredensial atau kredensial Anda telah habis masa berlakunya, alur otorisasi baru harus dibuat [melalui
oauth2client.client.flow_from_clientsecrets()] dari ID klien & rahasia OAuth Anda dalam fileclient_id.jsonyang Anda download].
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
- Setelah memiliki alur, aplikasi Anda harus dijalankan untuk menampilkan layar izin OAuth2 kepada pengguna [melalui
oauth2client.tools.run_flow()] yang dijelaskan dan diilustrasikan di atas.
creds = tools.run_flow(flow, store)
- Dengan mengklik Izinkan, pengguna mengizinkan aplikasi Anda mengakses metadata file Google Drive mereka, dan server Google akan menampilkan token untuk mengakses API. File tersebut ditampilkan sebagai
credsdan di-cache dalam filestorage.json. - Pada tahap ini, aplikasi Anda kini memiliki kredensial yang valid untuk melakukan panggilan API. Memanggil
googleapiclient.discovery.build()akan membuat endpoint layanan ke API yang Anda gunakan. - Untuk menggunakan
build(), teruskan nama API ('drive') & versi yang diinginkan (saat ini'v3'). - Parameter terakhir adalah klien HTTP yang akan digunakan untuk panggilan API terenkripsi.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
Mengambil & menampilkan 100 file/folder & MIMEtype pertama Drive)
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
- Baris kode berikutnya memanggil metode
list()dalam koleksifiles()untuk Drive API guna membuat permintaan, yang segera dipanggil denganexecute().dictPython ditampilkan dari sana kita meminta kunci'files'untuk mendapatkan 100 nama file & folder dari Google Drive pengguna (atau kurang jika Anda memiliki lebih sedikit file). - Mengapa 100? Itu adalah default dari
DRIVE.files().list(). Jika Anda ingin mengubah jumlah ini, misalnya hanya menjadi 10 file atau 1.000, tambahkan parameterpageSizeke permintaan Anda:DRIVE.files().list(pageSize=10). Berikut dokumentasi untuk opsi lainnya. - Bagian akhir skrip melakukan loop melalui setiap file dan menampilkan nama & jenis MIME file.
Anda kini telah menulis aplikasi pertama yang menggunakan Google REST API... selamat! Selain kode otorisasi dan impor, skrip ini sebenarnya hanya terdiri dari beberapa baris kode (yang Anda lihat di atas). Sebagian besar Google API berfungsi dengan cara yang serupa dan Anda hanya perlu membuat endpoint layanan untuk setiap API yang ingin Anda gunakan.
Menggunakan lebih dari satu Google API dalam aplikasi
Ya, Anda tentu dapat menggunakan lebih dari satu API dalam aplikasi yang sama. Berikut cuplikan kode Python untuk aplikasi yang menggunakan kembali klien HTTP yang sama dan membuat endpoint layanan ke tiga Google API (ya, juga dengan 3 SCOPES yang berbeda):
SCOPES = (
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets.readonly',
'https://www.googleapis.com/auth/presentations',
)
. . .
HTTP = creds.authorize(Http())
DRIVE = discovery.build('drive', 'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)
Kami membayangkan kode ini dapat menjadi bagian dari aplikasi yang membuat beberapa presentasi (Slides API) berdasarkan data spreadsheet (Sheets API) dan menggunakan template slide yang disalin (Drive API) untuk setiap presentasi yang dibuat. Meskipun aplikasi semacam itu tidak ada, Anda dapat membuat aplikasi serupa dengan menggunakan dua contoh yang telah dibuat oleh tim Google Workspace sebagai elemen penyusun:
- Mengganti teks & gambar dalam slide ( postingan blog & video) — menggunakan Drive API untuk menyalin setumpuk template slide, lalu menggunakan Slides API untuk mengubah teks & placeholder gambar
- Membuat slide dari data spreadsheet ( postingan blog & video) — membaca data dari spreadsheet (Sheets API) dan membuat slide (Slides API) berdasarkan data tersebut
Tantangan Anda: bangun aplikasi tersebut.
12. *Penggunaan devconsole lanjutan
Di bagian opsional ini, kami menjelaskan cara membuat project di devconsole, mengaktifkan API, dan mendapatkan kredensial, semuanya tanpa menggunakan wizard seperti di atas dalam codelab. Cara ini ditujukan bagi pengguna tingkat menengah yang cukup nyaman melakukannya secara manual atau ingin mempelajari cara melakukannya.
Menentukan project di Konsol Cloud
Setiap kali menulis aplikasi menggunakan Google API, Anda harus memiliki project. Anda dapat menggunakan kembali project yang ada atau membuat project baru. Hal itu dilakukan di Konsol Cloud. Beberapa codelab menyediakan link ajaib (yaitu, seperti wizard penyiapan) yang memungkinkan Anda memulai dengan cepat, tanpa harus melakukan banyak langkah yang diperlukan. Namun, tidak semuanya melakukannya, jadi petunjuk ini dimaksudkan sebagai petunjuk umum tentang cara membuat project.
Anda dapat membuat project dari sebagian besar layar di Konsol Cloud, selama Anda telah login dengan kredensial Google dan melihat menu pull-down project di bagian atas konsol. Perhatikan bahwa sebagian besar screenshot di sini diambil dari API Manager alias Konsol Developer (dapat diakses dengan mudah dengan mengklik "API manager" di nav kiri atau mengarahkan browser Anda langsung ke console.developers.google.com.
- Jika belum memiliki project, Anda dapat diarahkan ke...
- halaman Dasbor:
- halaman Library:
- atau halaman yang benar-benar kosong:
Jika hal ketiga ini terjadi pada Anda, cukup muat ulang browser untuk membuka halaman Library.
- Baik Anda berada di halaman Dashboard atau Library, klik pemilih project di bagian atas halaman:
- Selanjutnya, Anda akan mendapatkan dialog pemilih. Klik "+" di sisi kanan untuk membuat project baru:
- Setelah Anda mengklik "+", halaman Project Baru akan muncul. Semua akun konsumen mendapatkan 12 project secara default. Sebelum membuat project pertama, Anda harus menyetujui Persyaratan Layanan Google API:
Setelah Anda melakukannya, permintaan email dan pertanyaan Persyaratan Layanan tidak akan muncul saat membuat project di masa mendatang:
5. Jika Anda telah membuat setidaknya satu project sebelumnya, setelah login, Anda akan diarahkan ke dasbor project terakhir yang Anda kerjakan. Dari sana, buat project baru seperti saat Anda memilih Select a project > +. 6. Setelah project baru dibuat, Anda akan kembali ke halaman Dasbor:
Anda telah berhasil membuat project dan siap melanjutkan dengan memilih API yang ingin digunakan untuk project Anda.
Mengaktifkan Google API
Sebelum Anda bisa mulai menggunakan Google API, Anda harus mengaktifkannya. Contoh di bawah menunjukkan apa yang akan Anda lakukan untuk mengaktifkan Cloud Vision API. Dalam codelab ini, Anda mungkin menggunakan satu atau beberapa API, dan harus mengikuti langkah-langkah yang serupa untuk mengaktifkannya sebelum penggunaan.
Dari Cloud Shell
Menggunakan Cloud Shell, Anda dapat mengaktifkan API dengan menggunakan perintah berikut:
gcloud services enable vision.googleapis.com
Dari Cloud Console
Anda juga dapat mengaktifkan Vision API di Pengelola API. Dari Konsol Cloud, buka API Manager, lalu pilih "Library".
Di kotak penelusuran, mulailah mengetik "vision", lalu pilih Vision API saat muncul. Tampilan mungkin terlihat seperti ini saat Anda mengetik:
Pilih Cloud Vision API untuk mendapatkan dialog yang Anda lihat di bawah, lalu klik tombol "Aktifkan":
Biaya
Meskipun banyak Google API yang dapat digunakan tanpa biaya, penggunaan GCP (produk & API) tidak gratis. Saat mengaktifkan Vision API (seperti dijelaskan di atas), Anda mungkin diminta untuk memberikan akun penagihan yang aktif. Sebelum mengaktifkan, pengguna harus merujuk pada informasi harga Vision API. Perlu diingat bahwa produk Google Cloud Platform (GCP) tertentu memiliki paket"Selalu Gratis" yang harus Anda lampaui agar muncul penagihan. Untuk keperluan codelab, setiap panggilan ke Vision API diperhitungkan terhadap paket gratis tersebut, dan selama Anda tidak melebihi batas agregat (dalam setiap bulan), Anda tidak akan dikenakan biaya apa pun.
Beberapa Google API, yaitu, Google Workspace, memiliki penggunaan yang tercakup dalam langganan bulanan, sehingga tidak ada penagihan langsung untuk penggunaan API Gmail, Google Drive, Kalender, Dokumen, Spreadsheet, dan Slide, misalnya. Produk Google yang berbeda ditagih secara berbeda, jadi pastikan untuk merujuk dokumentasi API Anda untuk informasi tersebut.
Ringkasan
Dalam codelab ini, Anda hanya perlu mengaktifkan Google Drive API, jadi ikuti petunjuk di atas dan telusuri "Drive". Lanjutkan setelah diaktifkan.
Mengizinkan permintaan API (otorisasi pengguna)
Pengantar tentang otorisasi (plus beberapa autentikasi)
Untuk membuat permintaan ke API, aplikasi Anda harus memiliki otorisasi yang tepat. Autentikasi, sebuah kata yang mirip, menjelaskan kredensial login—Anda mengautentikasi diri sendiri saat login ke akun Google dengan login & sandi. Setelah diautentikasi, langkah berikutnya adalah apakah Anda—atau lebih tepatnya, kode Anda,—diotorisasi untuk mengakses data, seperti file blob di Cloud Storage atau file pribadi pengguna di Google Drive.
Google API mendukung beberapa jenis otorisasi, tetapi yang paling umum untuk pengguna Google Workspace API adalah otorisasi pengguna karena aplikasi contoh dalam codelab ini mengakses data milik pengguna akhir. Pengguna akhir tersebut harus memberikan izin kepada aplikasi Anda untuk mengakses datanya. Ini berarti kode Anda harus mendapatkan kredensial OAuth2 akun pengguna.
Untuk mendapatkan kredensial OAuth2 untuk otorisasi pengguna, kembali ke pengelola API dan pilih tab "Kredensial" di navigasi sebelah kiri:
Setelah itu, Anda akan melihat semua kredensial dalam tiga bagian terpisah:
Bagian pertama adalah untuk kunci API, bagian kedua untuk client ID OAuth 2.0, dan bagian ketiga untuk akun layanan OAuth2—kita menggunakan bagian yang di tengah.
Membuat kredensial
Dari halaman Kredensial, klik tombol + Buat Kredensial di bagian atas, yang akan menampilkan dialog tempat Anda memilih "Client ID OAuth:"
Pada layar berikutnya, Anda memiliki 2 tindakan: mengonfigurasi "layar izin" otorisasi aplikasi dan memilih jenis aplikasi:
Jika belum menyetel layar izin, Anda akan melihat peringatan di konsol dan harus menyetelnya sekarang. (Lewati langkah berikutnya ini jika layar izin Anda sudah disetel.)
Layar persetujuan OAuth
Klik "Konfigurasikan layar izin", pilih aplikasi "Eksternal" (atau "Internal" jika Anda adalah pelanggan Google Workspace):
Perlu diperhatikan, untuk keperluan latihan ini, tidak masalah apa yang Anda pilih karena Anda tidak memublikasikan sampel codelab Anda. Sebagian besar orang akan memilih "Eksternal" untuk diarahkan ke layar yang lebih kompleks, namun Anda hanya perlu mengisi kolom "Nama aplikasi" di bagian atas:
Satu-satunya yang Anda butuhkan saat ini adalah nama aplikasi, jadi pilih seseorang yang mencerminkan codelab yang Anda kerjakan, lalu klik Simpan.
Membuat client ID OAuth (autentikasi akun pengguna)
Sekarang kembali ke tab Kredensial untuk membuat client ID OAuth2. Di sini Anda akan melihat berbagai client ID OAuth yang dapat Anda buat:
Kita sedang mengembangkan alat command line, yaitu Lainnya, jadi pilih itu, lalu klik tombol Buat. Pilih nama client ID yang mencerminkan aplikasi yang sedang Anda buat atau cukup gunakan nama default, yaitu "Klien lain N".
Menyimpan kredensial Anda
- Dialog dengan kredensial baru akan muncul; klik Oke untuk menutup
- Kembali ke halaman Kredensial, scroll ke bawah ke bagian "Client ID OAuth2" lalu cari dan klik ikon download
di ujung kanan bawah client ID yang baru dibuat.
- Tindakan ini akan membuka dialog untuk menyimpan file bernama
client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json, kemungkinan ke folder Download Anda. Sebaiknya persingkat menjadi nama yang lebih mudah seperticlient_secret.json(yang digunakan oleh aplikasi contoh), lalu simpan ke direktori/folder tempat Anda akan membuat aplikasi contoh dalam codelab ini.