Panduan memulai menjelaskan cara menyiapkan dan menjalankan aplikasi yang memanggil Google Workspace API.
Panduan memulai Google Workspace menggunakan library klien API untuk menangani beberapa detail tentang alur otentikasi dan otorisasi. Sebaiknya Anda menggunakan library klien untuk aplikasi Anda sendiri. Panduan memulai ini menggunakan pendekatan otentikasi yang disederhanakan yang sesuai untuk pengujian lingkungan fleksibel App Engine. Untuk lingkungan produksi, sebaiknya pelajari tentang autentikasi dan otorisasi sebelum memilih kredensial akses yang sesuai untuk aplikasi Anda.
Membuat aplikasi command line Java yang membuat permintaan ke Postmaster Tools API.
Tujuan
- Menyiapkan lingkungan Anda.
- Siapkan contoh.
- Jalankan contoh.
Prasyarat
- Java 1.8 atau yang lebih baru.
- Gradle 7.0 atau yang lebih baru.
- Project Google Cloud.
- Akun Google dengan Gmail diaktifkan.
Menyiapkan lingkungan Anda
Untuk menyelesaikan panduan memulai ini, siapkan lingkungan Anda.
Mengaktifkan API
Sebelum menggunakan Google API, Anda harus mengaktifkannya di project Google Cloud. Anda dapat mengaktifkan satu atau beberapa API dalam satu project Google Cloud.Di konsol Google Cloud, aktifkan Postmaster Tools API.
Mengonfigurasi layar izin OAuth
Jika Anda menggunakan project Google Cloud baru untuk menyelesaikan panduan memulai ini, konfigurasikan layar izin OAuth dan menambahkan diri Anda sebagai pengguna uji coba. Jika Anda sudah menyelesaikan langkah ini untuk project Cloud Anda, lanjutkan ke bagian berikutnya.
- Di konsol Google Cloud, buka Menu > API & Layanan > Layar izin OAuth.
- Untuk Jenis pengguna, pilih Internal, lalu klik Buat.
- Lengkapi formulir pendaftaran aplikasi, lalu klik Simpan dan Lanjutkan.
Untuk saat ini, Anda dapat melewati penambahan cakupan, lalu mengklik Simpan dan Lanjutkan. Pada masa mendatang, jika Anda membuat aplikasi untuk digunakan di luar organisasi Google Workspace, Anda harus mengubah Jenis pengguna menjadi Eksternal, lalu menambahkan cakupan otorisasi yang dibutuhkan aplikasi Anda.
- Tinjau ringkasan pendaftaran aplikasi Anda. Untuk melakukan perubahan, klik Edit. Jika aplikasi pendaftaran tampak tidak bermasalah, klik Kembali ke Dasbor.
Memberi otorisasi kredensial untuk aplikasi desktop
Untuk mengautentikasi pengguna akhir dan mengakses data pengguna di aplikasi, Anda harus buat satu atau beberapa ID Klien OAuth 2.0. Client ID digunakan untuk mengidentifikasi aplikasi tunggal ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa platform, Anda harus membuat ID klien terpisah untuk setiap platform.- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > Aplikasi desktop.
- Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian Client ID OAuth 2.0.
- Simpan file JSON yang didownload sebagai
credentials.json
, lalu pindahkan file ke direktori kerja Anda.
Menyiapkan ruang kerja
Dalam direktori kerja Anda, buat struktur project baru:
gradle init --type basic mkdir -p src/main/java src/main/resources
Di direktori
src/main/resources/
, salin filecredentials.json
yang telah didownload sebelumnya.Buka file
build.gradle
default dan ganti kontennya dengan kode berikut:apply plugin: 'java' apply plugin: 'application' mainClassName = 'GmailPostmasterToolsQuickstart' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = '1.0' repositories { mavenCentral() } dependencies { implementation 'com.google.api-client:google-api-client:1.23.0' implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0' implementation 'com.google.apis:google-api-services-gmailpostmastertools:v1-rev20210528-1.31.0' }
Menyiapkan contoh
Di direktori
src/main/java/
, buat file Java baru dengan nama yang cocok dengan nilaimainClassName
di filebuild.gradle
Anda.Sertakan kode berikut dalam file Java baru Anda:
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.gmailpostmastertools.v1beta1.PostmasterTools; import com.google.api.services.gmailpostmastertools.v1beta1.model.*; import java.io.*; import java.security.GeneralSecurityException; import java.util.Collections; import java.util.List; public class PostmasterToolsApiQuickStart { private static final String APPLICATION_NAME = "PostmasterTools API Java Quickstart"; private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); private static final String TOKENS_DIRECTORY_PATH = "tokens"; /** * Global instance of the scopes required by this quickstart. * If modifying these scopes, delete your previously saved tokens/ folder. */ private static final List<String> SCOPES = Collections.singletonList("https://www.googleapis.com/auth/postmaster.readonly"); private static final String CREDENTIALS_FILE_PATH = "/credentials.json"; /** * Creates an authorized Credential object. * @param HTTP_TRANSPORT The network HTTP Transport. * @return An authorized Credential object. * @throws IOException If the credentials.json file cannot be found. */ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException { // Load client secrets. InputStream in = PostmasterToolsApiQuickStart.class.getResourceAsStream(CREDENTIALS_FILE_PATH); if (in == null) { throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH); } GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); // Build flow and trigger user authorization request. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8891).build(); return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { // Build a new authorized API client service. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); PostmasterTools postmasterTools = new PostmasterTools.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); List<Domain> domains = postmasterTools.domains().list().execute().getDomains(); if (domains == null || domains.isEmpty()) { System.out.println("No domains found!"); } else { for (Domain domain : domains) { System.out.println(domain.toPrettyString()); } } } }
Menjalankan contoh
Jalankan contoh:
gradle run
-
Saat pertama kali menjalankan contoh, Anda akan diminta untuk mengizinkan akses:
- Jika Anda belum login ke Akun Google, login saat diminta. Jika Anda login ke beberapa akun, pilih satu akun yang akan digunakan untuk otorisasi.
- Klik Setuju.
Aplikasi Java Anda berjalan dan memanggil Postmaster Tools API.
Informasi otorisasi disimpan di sistem file, jadi saat berikutnya Anda menjalankan sampel kode, Anda tidak akan diminta untuk melakukan otorisasi.
Langkah berikutnya
- Memecahkan masalah autentikasi dan otorisasi
- Dokumentasi referensi REST Postmaster Tools API
- Dokumentasi Klien Google API untuk Java
- Dokumentasi Javadoc Postmaster Tools API