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 oluşturulacağı ve ç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ılavuzunda, test ortamı için uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanılmaktadır. Üretim ortamında, uygulamanız için uygun erişim kimlik bilgilerini seçmeden önce kimlik doğrulama ve yetkilendirme hakkında bilgi edinmenizi öneririz.

Google Keep API'ye istek gönderen bir Java komut satırı uygulaması oluşturun.

Hedefler

  • Ortamınızı ayarlayın.
  • Numuneyi ayarlayın.
  • Ö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 bir Google Cloud projesinde etkinleştirmeniz gerekir. Tek bir Google Cloud projesinde bir veya daha fazla API'yi etkinleştirebilirsiniz.

Hizmet hesabı oluşturma

Hizmet hesabı, bir kişi yerine bir uygulama tarafından kullanılan özel bir hesap türüdür. Robot hesabıyla verilere erişmek veya işlem yapmak 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 başlıklı makaleyi inceleyin.

Google Cloud konsolu

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

    Hizmet Hesaplarına gidin

  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 rol atayın. Daha fazla bilgi için Kaynaklara erişim 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önetebilecek ve bu hesapta işlem yapabilecek kullanıcıları veya grupları girin. Daha fazla bilgi için Hizmet hesabı kimliğine bürünmeyi yönetme başlıklı makaleyi inceleyin.
  7. Bitti'yi 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 rol atayın. Daha fazla bilgi için Kaynaklara erişim verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.

Hizmet hesabı için kimlik bilgileri oluşturma

Ortak/özel anahtar çifti biçiminde kimlik bilgileri edinmeniz gerekir. Bu kimlik bilgileri, uygulamanızdaki hizmet hesabı işlemlerini yetkilendirmek için kodunuz tarafından kullanılır.
  1. Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesaplarına gidin

  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 makinenize yeni bir dosya olarak indirilir. İndirilen JSON dosyasını çalışma dizininizde credentials.json olarak kaydedin. Bu dosya, bu anahtarın tek kopyasıdır. Anahtarınızı güvenli şekilde nasıl depolayacağınız hakkında bilgi edinmek için Hizmet hesabı anahtarlarını yönetme başlıklı makaleyi inceleyin.

  5. Kapat'ı tıklayın.

Hizmet hesabı için alan genelinde yetkilendirme ayarlarını yapma

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

    Hizmet Hesaplarına gidin

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

    İlgili Google Workspace hesabına süper yönetici erişiminiz yoksa bu hesabın süper yöneticisiyle iletişime geçin ve Yönetici Konsolu'nda aşağıdaki adımları tamamlayabilmesi için hizmet hesabınızın istemci kimliğini ve OAuth kapsamları listesini gönderin.

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

      API denetimlerine gitme

    2. Alan Genelinde Yetkiyi Yönet'i tıklayın.
    3. Yeni ekle'yi tıklayın.
    4. "İstemci Kimliği" alanına, daha önce kopyaladığınız istemci kimliğini yapıştırın.
    5. "OAuth Kapsamları" alanına, uygulamanızın gerektirdiği kapsamların virgülle ayrılmış bir listesini girin. Bu, OAuth kullanıcı rızası ekranını yapılandırırken tanımladığınız kapsam kümesiyle 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();
      }
    }
    
    

Sana Özel'i çalıştırma

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

    gradle run
    
  1. Sana Özel örneğini ilk kez çalıştırdığınızda erişim için yetki vermenizi ister:
    1. Google Hesabınızda 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 çalışır ve Google Keep API'yi çağırır.

    Yetkilendirme bilgileri dosya sisteminde depolandığından, örnek kodu bir sonraki sefer çalıştırdığınızda yetkilendirme istenir.

Sonraki adımlar