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

Hızlı başlangıç kılavuzlarında Google Workspace API çağıran bir uygulamanın nasıl kurulacağı 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. İstemci kitaplıklarını kendi uygulamalarınız için 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ı söz konusuysa uygulamanız için uygun olan erişim kimlik bilgilerini seçmeden önce kimlik doğrulama ve yetkilendirme hakkında bilgi edinmenizi öneririz.

Google Classroom 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 Classroom'un etkin olduğu bir Google for Education 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 etkinleştirebilirsiniz.

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

  1. Google Cloud konsolunda Menü > API'ler ve Hizmetler > OAuth izin ekranı'na gidin.

    OAuth izin ekranına gidin

  2. Uygulamanızın kullanıcı türünü seçin, ardından Oluştur'u tıklayın.
  3. Uygulama kayıt formunu doldurup Kaydet ve Devam Et'i tıklayın.
  4. Şimdilik kapsam eklemeyi atlayıp Kaydet ve Devam Et'i tıklayabilirsiniz. Gelecekte Google Workspace kuruluşunuzun dışında kullanmak için uygulama oluşturduğunuzda, uygulamanızın gerektirdiği yetkilendirme kapsamlarını eklemeniz ve doğrulamanız gerekir.

  5. Kullanıcı türü olarak Harici seçeneğini belirlediyseniz test kullanıcılarını ekleyin:
    1. Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
    2. E-posta adresinizi ve diğer yetkili test kullanıcılarınızı girip Kaydet ve Devam Et'i tıklayın.
  6. Uygulama kaydı özetinizi inceleyin. Değişiklik yapmak için Düzenle'yi tıklayın. Uygulama kaydında sorun yoksa Kontrol Paneline Dön'ü tıklayın.

Bir masaüstü uygulaması için kimlik bilgilerini yetkilendirme

Son kullanıcı olarak kimlik doğrulaması yapmak ve uygulamanızda kullanıcı verilerine erişmek için bir veya daha fazla OAuth 2.0 İstemci Kimliği oluşturmanız gerekir. İstemci kimliği, tek bir uygulamayı Google'ın OAuth sunucularına 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 konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri'ne gidin.

    Kimlik Bilgileri'ne git

  2. Kimlik Bilgileri Oluştur > OAuth istemci kimliği'ni tıklayın.
  3. Uygulama türü > Masaüstü uygulaması'nı tıklayın.
  4. Ad alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
  5. Create'i (Oluştur) tıklayın. Yeni İstemci Kimliğinizi ve İstemci gizli anahtarınızı gösteren OAuth istemcisi oluşturma ekranı görünür.
  6. OK (Tamam) seçeneğini tıklayın. Yeni oluşturulan kimlik bilgisi, OAuth 2.0 İstemci Kimlikleri altında görüntülenir.
  7. İndirilen JSON dosyasını credentials.json olarak kaydedip ç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. Daha önce indirdiğiniz credentials.json dosyasını src/main/resources/ dizinine kopyalayın.

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

    classroom/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'ClassroomQuickstart'
    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-classroom:v1-rev20220323-2.0.0'
    }
    

Örneği oluşturma

  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:

    classroom/quickstart/src/main/java/ClassroomQuickstart.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.classroom.ClassroomScopes;
    import com.google.api.services.classroom.model.*;
    import com.google.api.services.classroom.Classroom;
    
    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 ClassroomQuickstart {
      private static final String APPLICATION_NAME = "Google Classroom 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 =
          Collections.singletonList(ClassroomScopes.CLASSROOM_COURSES_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 = ClassroomQuickstart.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();
        Classroom service =
            new Classroom.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        // List the first 10 courses that the user has access to.
        ListCoursesResponse response = service.courses().list()
            .setPageSize(10)
            .execute();
        List<Course> courses = response.getCourses();
        if (courses == null || courses.size() == 0) {
          System.out.println("No courses found.");
        } else {
          System.out.println("Courses:");
          for (Course course : courses) {
            System.out.printf("%s\n", course.getName());
          }
        }
      }
    }

Örneği çalıştır

  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 Google Classroom API'yi çalıştırır ve çağırır.

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

Sonraki adımlar