Panduan visual step-by-step buat dapetin file
credentials.jsonyang dibutuhkangsm. Estimasi waktu: 15-30 menit (sekali setup, gak diulang).
gsm perlu akses Google Workspace lo (buat add domain, bikin user, verify ownership). Itu butuh file OAuth credentials yang lo download dari Google Cloud Console.
Buka: https://console.cloud.google.com
Login pakai akun Google Workspace Admin lo (yang punya akses Admin SDK).
Penting: Akun ini harus admin Workspace, bukan akun Gmail biasa. Kalo lo gak yakin, cek di https://admin.google.com - kalo bisa login, lo admin.
- Klik dropdown project di pojok kiri-atas (di samping "Google Cloud" logo)
- Di popup yang muncul, klik tombol "NEW PROJECT" (kanan-atas)
- Isi:
- Project name:
gsuite-manager(atau nama bebas) - Organization: pilih organization Workspace lo
- Location: biarin default
- Project name:
- Klik "CREATE"
- Tunggu beberapa detik, lalu pilih project itu di dropdown atas
gsm butuh 2 API:
- Admin SDK API (buat manage domain + user)
- Site Verification API (buat verify ownership domain)
- Di sidebar kiri, klik "APIs & Services" → "Library"
- Search:
Admin SDK API - Klik hasilnya, lalu klik tombol "ENABLE" (tunggu sampe selesai)
- Balik ke Library, search:
Site Verification API - Klik hasilnya, klik "ENABLE"
Kalo udah pernah enable, tombolnya bakal jadi "MANAGE" (artinya udah aktif - skip).
Sebelum bisa bikin OAuth client, harus setup consent screen dulu.
- Sidebar: "APIs & Services" → "OAuth consent screen"
- Pilih User Type:
- Internal kalo lo punya Workspace organization (RECOMMENDED - lebih simpel)
- External kalo gak punya org / pakai Gmail biasa (perlu approval Google)
- Klik "CREATE"
- Isi form:
- App name:
gsuite-manager(atau bebas) - User support email: email Workspace lo
- Developer contact: email Workspace lo
- Field lain: bisa di-skip
- App name:
- Klik "SAVE AND CONTINUE"
- Di Scopes page: klik "SAVE AND CONTINUE" (gak perlu add scope di sini, scope diatur di code)
- Di Test users page (kalo External): tambahin email lo, klik "SAVE AND CONTINUE"
- Klik "BACK TO DASHBOARD"
Ini step inti yang ngehasilin credentials.json.
- Sidebar: "APIs & Services" → "Credentials"
- Klik "+ CREATE CREDENTIALS" (tombol biru di atas)
- Pilih "OAuth client ID"
- Di form:
- Application type: pilih "Desktop app" (PENTING! Bukan Web!)
- Name:
gsuite-manager-cli(atau bebas)
- Klik "CREATE"
- Popup muncul dengan Client ID dan Client Secret
- Klik "DOWNLOAD JSON" (tombol di kanan-bawah popup)
File yang lo download namanya kayak: client_secret_123456789-abcdef.apps.googleusercontent.com.json
Pindahin ke folder project:
# Misal lo download ke ~/Downloads
mv ~/Downloads/client_secret_*.json ./credentials.json
# Atau tetep nama aslinya - gsm auto-detect
mv ~/Downloads/client_secret_*.json ./Verify:
gsm doctorCek di output: oauth_client row harus PASS.
Pertama kali run command yang butuh Google API (mis. gsm domains add), browser bakal kebuka otomatis:
- Login pake akun Workspace Admin lo
- WARNING screen: "Google hasn't verified this app" → klik "Advanced" → "Go to gsuite-manager (unsafe)"
- Ini muncul karena app lo Internal/Test - aman, ini app lo sendiri
- Setujui semua scope yang diminta:
- Site Verification
- Admin Directory (Domain + User)
- Setelah selesai, browser nampilin "The authentication flow has completed"
- Token otomatis disimpen di
token.json- gak perlu login lagi sampai 7 hari atau token revoked.
Kalo consent screen tipe External dan App belum di-publish, hanya test users yang bisa login.
Fix: balik ke OAuth consent screen → tab Test users → tambahin email lo.
Akun yang lo pake login bukan Workspace Admin.
Fix: Login pake akun yang punya akses ke https://admin.google.com.
Lo bikin OAuth client tipe "Web" instead of "Desktop app".
Fix: Bikin OAuth client baru, pilih Desktop app (Step 5).
rm token.json
gsm doctor # akan re-auth via browsercredentials.json= identitas app lo. Jangan commit ke git! (sudah di-block di.gitignore)token.json= akses ke Workspace lo. Jangan share! (juga di-block)- Kalo
credentials.jsonke-leak: revoke di Google Cloud Console → bikin client baru - Kalo
token.jsonke-leak: balik ke OAuth consent screen → di tab "Credentials" → revoke session - Mode 0o600 (owner-read-only) di-enforce sama
gsm
- GCP project bikin
- Admin SDK API enabled
- Site Verification API enabled
- OAuth consent screen configured
- OAuth client tipe Desktop app dibikin
- JSON downloaded → renamed
credentials.json→ di project root -
gsm doctor→oauth_clientPASS - First command run → browser kebuka → login OK →
token.jsonter-create
Kalo semua ✓, lo siap pake gsm domains add dan gsm users add.