Google Keep 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ıç kılavuzunda, test ortamı için uygun olan basitleştirilmiş bir kimlik doğrulama yaklaşımı kullanılmaktadı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 önerdiği API istemci kitaplıkları kullanılır.
Hedefler
- Ortamınızı ayarlayın.
- Numuneyi ayarlayın.
- Örneği çalıştırın.
Ön koşullar
- Java 11 veya daha yeni bir sürüm.
- Gradle 7.0 veya sonraki sürümler.
- Google Cloud projesi.
- Google Keep'in etkin olduğu bir Google Hesabı
Ortamınızı ayarlama
Bu hızlı başlangıcı 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.Google Cloud Console'da Google Keep API'yi etkinleştirin.
Hizmet hesabı oluşturma
Hizmet hesabı, bir kişi yerine bir uygulama tarafından kullanılan özel bir hesap türüdür. Verilere erişmek veya robot hesabı tarafından işlemleri gerçekleştirmek ya da Google Workspace veya Cloud Identity kullanıcıları adına verilere erişmek için hizmet hesabı kullanabilirsiniz. Daha fazla bilgi için Hizmet hesaplarını anlama başlıklı makaleyi inceleyin.Google Cloud konsolu
- Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.
- Hizmet hesabı oluştur'u tıklayın.
- Hizmet hesabı ayrıntılarını girip Oluştur ve devam et'i tıklayın.
- İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha ayrıntılı bilgi için Kaynaklara erişim verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.
- Devam'ı tıklayın.
- İsteğe bağlı: Bu hizmet hesabıyla işlemleri yönetebilecek ve 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ı makaleyi inceleyin.
- Bitti'yi tıklayın. Hizmet hesabının e-posta adresini not edin.
gcloud CLI
- Hizmet hesabını oluşturun:
gcloud iam service-accounts create
SERVICE_ACCOUNT_NAME
\ --display-name="SERVICE_ACCOUNT_NAME
" - İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha ayrıntılı 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
Herkese açık/ö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.- Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.
- Hizmet hesabınızı seçin.
- Anahtarlar > Anahtar ekle > Yeni anahtar oluştur'u tıklayın.
- JSON'ı 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 dizininize
credentials.json
olarak kaydedin. Bu dosya, anahtarın tek kopyasıdır. Anahtarınızı güvenli şekilde depolama hakkında bilgi edinmek için Hizmet hesabı anahtarlarını yönetme başlıklı makaleyi inceleyin. - Kapat'ı tıklayın.
Bir hizmet hesabı için alan genelinde yetki ayarlarını yapma
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 devri verilmesi gerekir. Daha fazla bilgi için Alan genelinde yetkiyi bir hizmet hesabına devretme başlıklı makaleyi inceleyin.- Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.
- Hizmet hesabınızı seçin.
- Gelişmiş ayarları göster'i tıklayın.
- "Alan genelinde yetki" 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.
İ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 hizmet hesabınızın istemci kimliğini ve OAuth kapsamları listesini gönderin. Böylece süper yönetici, Yönetici Konsolu'nda aşağıdaki adımları tamamlayabilir.
- Google Yönetici Konsolu'nda Menü > Güvenlik > Erişim ve veri denetimi > API denetimleri'ne gidin.
- Alan genelinde yetkiyi yönet'i tıklayın.
- Yeni ekle'yi tıklayın.
- "İstemci kimliği" alanına, daha önce kopyaladığınız istemci kimliğini yapıştırın.
- "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 kapsamlarla aynıdır.
- Yetkilendir'i tıklayın.
Çalışma alanını hazırlama
Çalışma dizininizde yeni bir proje yapısı oluşturun:
gradle init --type basic mkdir -p src/main/java src/main/resources
src/main/resources/
dizininde, daha önce indirdiğinizcredentials.json
dosyasını kopyalayın.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' }
Numuneyi ayarlama
src/main/java/
dizininde,build.gradle
dosyanızdakimainClassName
değeriyle eşleşen bir ada sahip yeni bir Java dosyası oluşturun.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ırma
Örneği çalıştırın:
gradle run
-
Örneği ilk kez çalıştırdığınızda erişimi yetkilendirmeniz istenir:
- 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.
- Kabul et'i tıklayın.
Java uygulamanız çalışıyor ve Google Keep API'sini çağırıyor.
Yetkilendirme bilgileri dosya sisteminde depolandığı için örnek kodu bir sonraki çalıştırmanızda yetkilendirme istemiyle karşılaşmazsınız.
Sonraki adımlar
- Kimlik doğrulama ve yetkilendirme sorunlarını giderme
- Google Keep API referans belgeleri
- Java için Google API'leri istemcisi dokümanları
- Google Keep API Javadoc belgeleri