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

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

Hızlı başlangıç kılavuzlarında, Google Workspace API'sini çağıran bir uygulamanın nasıl ayarlanacağı ve çalıştırılacağı açıklanır. Bu hızlı başlangıçta, test ortamı için uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanılır. Üretim ortamı için, uygulamanıza uygun erişim kimlik bilgilerini seçmeden önce kimlik doğrulama ve yetkilendirme hakkında bilgi edinmenizi öneririz.

Bu hızlı başlangıç kılavuzunda, kimlik doğrulama ve yetkilendirme akışının bazı ayrıntılarını işlemek için Google Workspace'in önerilen API istemci kitaplıkları kullanılmaktadır.

Hedefler

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

Ön koşullar

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.

Bu hızlı başlangıç kılavuzunu tamamlamak için yeni bir Google Cloud projesi kullanıyorsanız OAuth kullanıcı rızası ekranını yapılandırın. Cloud projeniz için bu adımı zaten tamamladıysanız sonraki bölüme geçin.

  1. Google API Konsolu'nda Menü > Google Auth platform > Markalama'ya gidin.

    Markalama'ya gidin.

  2. Google Auth platformunu zaten yapılandırdıysanız Markalama, Kitle ve Veri Erişimi'nde aşağıdaki OAuth kullanıcı rızası ekranı ayarlarını yapılandırabilirsiniz. Google Auth platformu henüz yapılandırılmadı mesajını görürseniz Başlayın'ı tıklayın:
    1. Uygulama Bilgileri bölümündeki Uygulama adı alanına uygulamanın adını girin.
    2. Kullanıcı destek e-postası bölümünde, kullanıcıların izinleriyle ilgili soruları olduğunda sizinle iletişime geçebilecekleri bir destek e-posta adresi seçin.
    3. İleri'yi tıklayın.
    4. Kitle bölümünde Şirket içi'ni seçin.
    5. İleri'yi tıklayın.
    6. İletişim bilgileri bölümünde, projenizde yapılan değişikliklerle ilgili bildirim alabileceğiniz bir e-posta adresi girin.
    7. İleri'yi tıklayın.
    8. Bitir bölümünde Google API Hizmetleri Kullanıcı Verileri Politikası'nı inceleyin ve kabul ediyorsanız Google API Hizmetleri: Kullanıcı Verileri Politikası'nı kabul ediyorum'u seçin.
    9. Devam'ı tıklayın.
    10. Oluştur'u tıklayın.
  3. Şimdilik kapsam ekleme adımını atlayabilirsiniz. Gelecekte Google Workspace kuruluşunuzun dışında kullanılacak bir uygulama oluşturduğunuzda Kullanıcı türü'nü Harici olarak değiştirmeniz gerekir. Ardından, uygulamanızın gerektirdiği yetkilendirme kapsamlarını ekleyin. Daha fazla bilgi edinmek için OAuth kullanıcı rızası ekranını yapılandırma başlıklı makalenin tamamını inceleyin.

Masaüstü uygulaması için kimlik bilgilerini yetkilendirme

Uygulamanızda son kullanıcıların kimliğini doğrulamak ve kullanıcı verilerine erişmek için bir veya daha fazla OAuth 2.0 istemci kimliği oluşturmanız gerekir. İstemci kimliği, Google'ın OAuth sunucularına tek bir uygulamayı tanımlamak için kullanılır. Uygulamanız birden fazla platformda çalışıyorsa her platform için ayrı bir istemci kimliği oluşturmanız gerekir.
  1. Google Cloud Console'da Menü > Google Auth platform > Clients'a (İstemciler) gidin.

    Müşteriler'e gidin

  2. Create Client'ı (İstemci Oluştur) tıklayın.
  3. Uygulama türü > Masaüstü uygulaması'nı tıklayın.
  4. Name (Ad) alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. İsteğe bağlı: Uygulamanız, kullanıcılar adına harekete geçen bir yapay zeka aracısıysa Bu istemciyi yapay zeka destekli bir aracı için kullan'ı seçin. Uygulamanız hem yapay zeka aracısı iş akışlarını hem de standart kullanıcı özelliklerini destekliyorsa her biri için ayrı OAuth istemcileri oluşturun. Müşteriyi oluşturduktan sonra bu ayarı değiştiremezsiniz.
  6. Oluştur'u tıklayın.

    Yeni oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.

  7. İndirilen JSON dosyasını credentials.json olarak kaydedin ve dosyayı çalışma dizininize taşıyı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/ dizinine, 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:

    people/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'PeopleQuickstart'
    sourceCompatibility = 11
    targetCompatibility = 11
    
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.api-client:google-api-client:2.0.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
        implementation 'com.google.apis:google-api-services-people:v1-rev20220531-2.0.0'
    }

Numuneyi 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:

    people/quickstart/src/main/java/PeopleQuickstart.java
    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.people.v1.PeopleService;
    import com.google.api.services.people.v1.PeopleServiceScopes;
    import com.google.api.services.people.v1.model.ListConnectionsResponse;
    import com.google.api.services.people.v1.model.Name;
    import com.google.api.services.people.v1.model.Person;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.security.GeneralSecurityException;
    import java.util.Arrays;
    import java.util.List;
    
    public class PeopleQuickstart {
      private static final String APPLICATION_NAME = "Google People API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.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 = Arrays.asList(PeopleServiceScopes.CONTACTS_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 = PeopleQuickstart.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(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();
        PeopleService service =
            new PeopleService.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        // Request 10 connections.
        ListConnectionsResponse response = service.people().connections()
            .list("people/me")
            .setPageSize(10)
            .setPersonFields("names,emailAddresses")
            .execute();
    
        // Print display name of connections if available.
        List<Person> connections = response.getConnections();
        if (connections != null && connections.size() > 0) {
          for (Person person : connections) {
            List<Name> names = person.getNames();
            if (names != null && names.size() > 0) {
              System.out.println("Name: " + person.getNames().get(0)
                  .getDisplayName());
            } else {
              System.out.println("No names available for connection.");
            }
          }
        } else {
          System.out.println("No connections found.");
        }
      }
    }

Örneği çalıştırma

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

    gradle run
    
  1. Örneği ilk kez çalıştırdığınızda erişimi yetkilendirmeniz 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 çalışıyor ve People API'yi çağırıyor.

    Yetkilendirme bilgileri dosya sisteminde depolandığı için örnek kodu bir sonraki çalıştırışınızda yetkilendirme istemiyle karşılaşmazsınız.

Sonraki adımlar