Java hızlı başlangıç kılavuzu

Hızlı başlangıç kılavuzlarında, Google Workspace API'yi çağıran bir uygulamanın nasıl kurulup çalıştırılacağı açıklanmaktadır.

Google Workspace hızlı başlangıç kılavuzları, kimlik doğrulama ve yetkilendirme akışının bazı ayrıntılarını işlemek için API istemci kitaplıklarını kullanır. Kendi uygulamalarınız için istemci kitaplıklarını kullanmanızı öneririz. Bu hızlı başlangıç kılavuzu, test ortamı için uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanır. Üretim ortamı için uygulamanız için uygun olan erişim kimlik bilgilerini seçmeden önce kimlik doğrulama ve yetkilendirme hakkında bilgi edinmenizi öneririz.

Google Keep API'ye istek yapan bir Java komut satırı uygulaması oluşturma.

Hedefler

  • Ortamınızı ayarlayın.
  • Örneği oluşturun.
  • Örneği çalıştırın.

Ön koşullar

  • Google Keep'in etkin olduğu bir Google Hesabı.

Ortamınızı ayarlama

Bu hızlı başlangıç kılavuzunu tamamlamak için ortamınızı ayarlayın.

API'yi etkinleştirme

Google API'lerini kullanmadan önce bunları bir Google Cloud projesinde etkinleştirmeniz gerekir. Tek bir Google Cloud projesinde bir veya daha fazla API etkinleştirebilirsiniz.

Hizmet hesabı oluşturma

Hizmet hesabı, bir kişi yerine uygulama tarafından kullanılan özel bir hesap türüdür. Verilere erişmek veya robot hesabı tarafından işlem gerçekleştirmek ya da Google Workspace veya Cloud Identity kullanıcıları adına verilere erişmek için bir hizmet hesabı kullanabilirsiniz. Daha fazla bilgi için Hizmet hesaplarını anlama bölümüne bakın.

Google Cloud Console

  1. Google Cloud konsolunda Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesapları'na git

  2. Hizmet hesabı oluştur'u tıklayın.
  3. Hizmet hesabı ayrıntılarını girip Oluştur ve devam et'i tıklayın.
  4. İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha fazla bilgi için Kaynaklara erişim izni verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.
  5. Devam'ı tıklayın.
  6. İsteğe bağlı: Bu hizmet hesabını yönetebilen ve işlem gerçekleştirebilecek kullanıcıları veya grupları girin. Daha fazla bilgi için Hizmet hesabı kimliğine bürünmeyi yönetme başlıklı makaleye bakın.
  7. Done'ı (Bitti) tıklayın. Hizmet hesabının e-posta adresini not edin.

gcloud CLI

  1. Hizmet hesabını oluşturun:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha fazla bilgi için Kaynaklara erişim izni verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.

Bir hizmet hesabı için kimlik bilgileri oluşturma

Kimlik bilgilerini herkese açık/özel anahtar çifti şeklinde almanız gerekir. Bu kimlik bilgileri, kodunuz tarafından uygulamanızdaki hizmet hesabı işlemlerini yetkilendirmek için kullanılır.
  1. Google Cloud konsolunda Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesapları'na git

  2. Hizmet hesabınızı seçin.
  3. Anahtarlar > Anahtar ekle > Yeni anahtar oluştur'u tıklayın.
  4. JSON'u seçip Oluştur'u tıklayın.

    Yeni herkese açık/özel anahtar çiftiniz oluşturulur ve yeni bir dosya olarak makinenize indirilir. İndirilen JSON dosyasını çalışma dizininize credentials.json olarak kaydedin. Dosya, bu anahtarın tek kopyasıdır. Anahtarınızı güvenli bir şekilde nasıl saklayacağınız hakkında bilgi edinmek için Hizmet hesabı anahtarlarını yönetme konusuna bakın.

  5. Close'u (Kapat) tıklayın.

Bir hizmet hesabı için alan genelinde yetki ayarlarını yapma

Bir Google Workspace kuruluşundaki kullanıcılar adına API'leri çağırmak için hizmet hesabınıza bir süper yönetici hesabı tarafından Google Workspace Yönetici Konsolu'nda alan genelinde yetki yetkisi verilmesi gerekir. Daha fazla bilgi için Bir hizmet hesabına alan genelinde yetki verme sayfasını inceleyin.
  1. Google Cloud konsolunda Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesapları'na git

  2. Hizmet hesabınızı seçin.
  3. Gelişmiş ayarları göster'i tıklayın.
  4. "Alan genelinde yetki" bölümünde hizmet hesabınızın "İstemci Kimliği"ni bulun. Kopyala'yı tıklayarak istemci kimliği değerini panonuza kopyalayın.
  5. İlgili Google Workspace hesabına süper yönetici erişiminiz varsa Google Workspace Yönetici Konsolu'nu Göster'i tıklayın, ardından süper yönetici kullanıcı hesabı kullanarak oturum açın ve bu adımları uygulamaya devam edin.

    İlgili Google Workspace hesabına süper yönetici erişiminiz yoksa hesabın süper yöneticilerinden biriyle iletişime geçip hizmet hesabınızın İstemci Kimliği'ni ve OAuth Kapsamları listesini kendisine göndererek Yönetici Konsolu'nda aşağıdaki adımları tamamlamasını isteyin.

    1. Google Yönetici Konsolu'nda Menü > Güvenlik > Erişim ve veri denetimi > API denetimleri'ne gidin.

      API denetimlerine git

    2. Alan Genelinde Yetkiyi Yönet'i tıklayın.
    3. Yeni ekle'yi tıklayın.
    4. Daha önce kopyaladığınız istemci kimliğini "İstemci Kimliği" alanına yapıştırın.
    5. "OAuth Kapsamları" alanına, uygulamanızın gerektirdiği kapsamların virgülle ayrılmış listesini girin. Bu, OAuth izin ekranını yapılandırırken tanımladığınız kapsam grubuyla aynıdır.
    6. Yetkilendir'i tıklayın.

Çalışma alanını hazırlama

  1. Çalışma dizininizde yeni bir proje yapısı oluşturun:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. src/main/resources/ dizininde, daha önce indirdiğiniz credentials.json dosyasını kopyalayın.

  3. Varsayılan build.gradle dosyasını açın ve içeriğini aşağıdaki kodla değiştirin:

      apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'KeepQuickstart'
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    version = '1.0'
    
    sourceCompatibility = 1.8
    
    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-keep:v1-rev20210528-1.31.0'
    }
    

Örneği ayarlama

  1. src/main/java/ dizininde, build.gradle dosyanızdaki mainClassName değeriyle eşleşen bir ada sahip yeni bir Java dosyası oluşturun.

  2. Yeni Java dosyanıza aşağıdaki kodu ekleyin:

    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.gson.GsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.services.keep.v1.Keep;
    import com.google.api.services.keep.v1.model.Note;
    import com.google.api.services.keep.v1.model.Section;
    import com.google.api.services.keep.v1.model.TextContent;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.security.GeneralSecurityException;
    import java.util.Collections;
    import java.util.List;
    
    public class KeepQuickstart {
    
      private static final String APPLICATION_NAME = "Google Keep API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
    
      /**
       * Global instance of the scopes required by this quickstart. If modifying these scopes, delete
       * your previously saved tokens/ folder.
       */
      private static final List<String> KEEP_SCOPES =
          Collections.singletonList("https://www.googleapis.com/auth/keep");
    
      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
       */
      private static Credential getOAuthCredentials(final NetHttpTransport HTTP_TRANSPORT)
          throws IOException {
        // Load client secrets.
        InputStream in = KeepQuickstart.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, KEEP_SCOPES)
                .setDataStoreFactory(new FileDataStoreFactory(new java.io.File("tokens")))
                .setAccessType("offline")
                .build();
        LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).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();
        Keep service =
            new Keep.Builder(HTTP_TRANSPORT, JSON_FACTORY, getOAuthCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        Section noteBody =
            new Section().setText(new TextContent().setText("Finish preparations by tomorrow!"));
        Note newNote = new Note().setTitle("Customer call next week").setBody(noteBody);
    
        // Creates a new text note.
        service.notes().create(newNote).execute();
      }
    }
    
    

Örneği çalıştır

  1. Örneği çalıştırın:

    gradle run
    
  1. Örneği ilk kez çalıştırdığınızda aşağıdaki izinleri vermeniz istenir:
    1. Google Hesabınızda henüz oturum açmadıysanız, istendiğinde oturum açın. Birden fazla hesapta oturum açtıysanız yetkilendirme için kullanılacak bir hesap seçin.
    2. Kabul et'i tıklayın.

    Java uygulamanız Google Keep API'yi çalıştırır ve çağırır.

    Yetkilendirme bilgileri dosya sisteminde depolanır. Böylece örnek kodu bir sonraki çalıştırmanızda yetkilendirme istenmez.

Sonraki adımlar