Google Docs API
Merhaba, Google’ın geçen haftalarda yayınladığı Google Docs API’ nin kullanımı ile ilgili hazırladığı örneği kaynak sağlamak adına adım adım paylaşacağım.
Burada gördüğünüz gibi Quickstarts’ lar altında çeşitli teknolojilerde örnekler var. Ben bugün Java olan örneği inceleyeceğim.
Önkoşullar
Uygulamaya başlayabilmek için önkoşullara baktığımızda;
- Java 1.7 ve üzeri
- Gradle 2.3 ve üzeri
- Google Hesabı
gerekmektedir. Ben bunların sizde olduğunu varsayarak devam ediyorum eğer sizde yoksa kurulumlarınızı tamamladıktan sonra bir sonraki bölüme geçebilirsiniz.
Adım 1: Google Docs API’yi kullanıma açma
Sayfa içinde 1. adımdaki ENABLE THE GOOGLE DOCS API butonuna tıklayarak Google APIs ‘ de proje oluşturup, o proje içerisinde Google Docs API’ nin kullanımını aktif etmiş oluyoruz. Açılan ekranda API kullanımı için gerekli olan config ayarlarımızı içeren credentials.json’ı DOWNLOAD CLIENT CONFIGURATION diyerek indiriyoruz.
Adım 2 : Projemizi Hazırlayalım!
Projeyi nerede oluşturmak istiyorsanız oraya gidip boş bir klasör açıyorsunuz. Bu boş klasörün içinde aşağıdaki komutu çalıştırarak gradle projemizi oluşturmuş oluyoruz.
gradle init --type basic
Bu komutu çalıştırarak da gerekli klasörlerimizi oluşturuyoruz.
mkdir -p src/main/java src/main/resources
- Adım 1' de oluşturduğumuz credentials.json’ı projemizin src/main altındaki resources klasörüne ekliyoruz.
- Projemiz altındaki build.gradle’ı açarak içerisine aşağıdaki kodu ekliyoruz.
Adım 3: Örneğimizi Hazırlayalım!
Sırada asıl işi yapacak olan java sınıfımızı oluşturmaya geldi. Bu aşamaya geçmeden önce oluşturduğumuz projemizi bir editor ile açalım. DocsQuickstart isminde sınıfımızı oluşturarak aşağıdaki kodumuzu yapıştıralım.
- Eğer farklı bir isimde sınıf açmak isterseniz build.gradle içindeki mainClassName’ i güncellemeyi unutmayın :)
DOCUMENT_ID’ ye burada Google tarafından oluşturulmuş örnek bir dökümanın id si verilmişti ama ben kendi oluşturduğum döküman üzerinde çalışmak istediğim için id yi güncelledim siz de değişkenimize görmek istediğiniz dökümanın id sini verebilirsiniz. Peki dökümanın id sini nerede bulabiliriz ???
Hemen bakalım!
Aşağıdaki url Google’ n örnek dökümanının ta kendisi olur. Bold yazılmış kısım ise döküman id sidir.
https://docs.google.com/document/d/195j9eDD3ccgjQRttHhJPymLJUCOUjs-jmwTrekvdjFE/edit
Artık kendi url nizi kullanabilirsiniz. ☺
Adım 4: Projemizi Çalıştıralım!
Editor terminalinde aşağıdaki komutu çalıştıralım.
gradle -q run
Komut çalıştıktan sonra web tarayıcınızda kullanmak istediğiniz mail adresinizi seçerek uygulama için “Google Docs belgelerinizi görüntüleme” iznini verip onaylamanız gerekiyor.
İzin verdikten sonra tarayıcı penceresini kapatabilirsiniz.
Çalıştığınız editörün terminal penceresine geldiğinizde id sini kullandığımız dökümanın başlığını terminalde görebilirsiniz.
Böylece Google Docs API ile dökümana erişip, döküman başlığını alabildik. Peki dökümanın içeriğini nasıl değiştirebiliriz ???
Bu soruyu sayfa içindeki “How To…” kısmından bir örneği uygulayarak bakalım. Format Text örneğinde kısaca 2 farklı format(biçimlendirme diyebiliriz) seçeneği olduğundan bahsediyor.
1-) Character Formatting ile yazının fontu, rengi gibi özelliklerine müdahele edebilirken,
2-) Paragraph Formatting ile de paragraf içerisinde satır başı, satırın altını çizme gibi değişiklikler yapabiliriz.
Aşağıdaki örneği uygulayarak döküman içerisindeki;
- 1. request ile; 1–5 arasındaki karakterleri bold ve italik,
- 2. request ile ; 6–10 arasındaki karakterleri mavi ve 14-pt boyutlu Times New Roman font yazı tipi,
- 3. request ile de 11–15 karakterleri hyperlink (www.example.com)
olarak güncelleyeceğiz.
Bu kodu DocsQuickstart sınıfınıza ekleyin.
Aynı komutla tekrar çalıştıralım :
Exception in thread “main” com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden hatasını almış olduk .☺
Bu hatanın sebebi; biz projeyi ilk kez çalıştırdığımızda sadece “Google Docs belgelerinizi görüntüleme” izni vermiştik ama biz burada yetkimiz olmadığı halde dökümanı düzenlemeye çalışıyoruz.
Çözüme bakalım; öncelikle ana sınıfımıza gidelim. SCOPES değişkenimize biz DOCUMENTS_READONLY diyerek; giriş yaparken sadece dökümanlara erişerek onları okuma izni istemiştik. Burayı DOCUMENTS olarak güncelleyerek döküman yönetimiyle ilgili diğer izinleri de istemiş olacağız.Bu işlemden sonra projemizdeki tokens klasörünü silip, projeyi tekrar çalıştıralım.
Artık belgeleri hem görüntüleyebilir hem de yönetebiliriz :)
Problemimizi çözdükten sonra dökümanımız başarıyla güncelleniyor.
Anlatacaklarım şimdilik bu kadardı. Eksik ya da hatalı gördüğünüz kısımları benimle paylaşırsanız yazımı güncelleyebilirim. ☺
- Projeyi github sayfamda bulabilirsiniz.