Google Kitaplar Dinamik Bağlantılar özelliği, sitenizden Google Kitaplar'a daha özelleştirilebilir ve güvenilir bağlantılar oluşturmanıza olanak tanır. Örneğin, bu araç yalnızca bir kitap dizinimize eklenmişken görünen "akıllı" bağlantılar oluşturmanıza veya bir kitabın Google Kitaplar'da önizlenebilir olup olmadığını kullanıcılarınıza belirten bağlantılar görüntülemenize olanak sağlar. Dinamik Bağlantılar özelliği, Google Kitaplar bağlantınıza küçük resim eklemenize de olanak tanır. Bu doküman, söz konusu işlevi sitenize hızlı bir şekilde eklemenizi sağlamak için hazırlanmıştır.
Not: Bu özellik daha önce Book Görüntülenebilirlik API'si olarak biliniyordu.
Önizleme Sihirbazı, Dinamik Bağlantılar üzerinde oluşturulmuş bir araçtır. Yalnızca birkaç satır kod kopyalayarak siteden kitap önizlemelerine bağlantı oluşturmayı daha da kolaylaştırır. Bu doküman, Kitap Arama ile bağlantı kurma şeklini özelleştirmek isteyen daha ileri düzey geliştiricilere yöneliktir.
İçindekiler
- Kitle
- Kitap Arama terminolojisi
- Giriş
- Markalama kuralları
- İstemci Tarafı API'si
- Eşzamanlı ve eşzamansız modlar
- Sık sorulan sorular
- Kod örnekleri
Kitle
Dinamik bağlantılar dokümanları, Google Kitaplar'daki kitaplara bağlantı veren web uygulamaları yazmak isteyen programcılara yöneliktir. Bu dokümantasyonda, HTTP protokolü ve temel JavaScript bilgileri hakkında bilgi sahibi olduğunuz varsayılır.
Kitap Arama terminolojisi
Google Kitaplar, kullanıcının yerel telif hakkı kısıtlamalarına uyar ve sonuç olarak bazı kitapların önizlemeleri veya tam görüntülemeleri tüm konumlarda kullanıma sunulmamıştır. Görüntülenebilirlik aşağıdaki sınıflara ayrılır:
- Tam Görünüm
- Kitabın tamamı görüntülenebilir. Bu kitaplar kamu alanında olabilir.
- Sınırlı Önizleme
- Kitabın bir bölümü görüntülenebilir. Bu kitap telif hakkı kapsamındadır ve Google Kitaplar bu sayfaları kullanıcıların erişimine açmak için izin almıştır. Bu kitaplar, Snippet'i Görüntüle ile sunulan kitaplardan farklıdır, kullanıcılar tüm sayfaları görüntüleyebilirler.
- Snippet Görünümü ve Önizleme Yok
- Kullanıcılar yalnızca "Kitap hakkında" sayfasını görür. Çoğunlukla, kitaptan yalnızca kısa alıntılar kullanılabilir. Bu kitap taranmamış veya telif hakkı kapsamında olduğundan Google Kitaplar, kullanıcının arama terimiyle ilgili birkaç "snippet'den" fazlasını göstermek için izin almadı.
Giriş
Statik Bağlantılar dokümanlarında, Google Kitaplar'daki belirli bir kitabın sayfasının URL'lerini oluşturmanın çok basit bir yolu açıklanmaktadır. Ne yazık ki, zaman zaman belirli bir kitap Google Kitaplar dizininde yer almayabilir veya belirli bir coğrafi konumdaki bir kullanıcı, önizlemeye erişemiyor olabilir. Statik Bağlantılar "kör" olduğundan bazen istenen etkiyi yaratmayabilir.
Dynamic Links, JavaScript kullanarak bir kitabın görüntülenebilirliğini sorgulamak için alternatif, programatik istemci tarafı bir yöntem sağlar. Böylece Kitap Arama'ya daha güvenilir ve öngörülebilir bağlantılar ekleyerek kullanıcılarınız için daha tutarlı bir deneyim sunabilirsiniz. Görüntülenebilirlik son kullanıcının konumuna göre değişiklik gösterdiği için dinamik bağlantı arayüzü, sunucu tarafı veya çevrimdışı sorgular için tasarlanmamıştır.
Dynamic Links'in neler yapabildiğini anlamak için bu belgenin sonundaki kod örneklerine geçin.
Markalama kuralları
Dynamic Links'i oluştururken Google Books API Ailesi'nin tabi olduğu markalama kurallarına uymanız gerekir. Özellikle,
- Google Kitaplar'a atıfta bulunma ve bağlantıları korumanız gerekir.
- Google Kitaplar'da önizlemelere bağlantı verirken yalnızca onaylanan Google Önizleme düğmesini kullanmanız gerekir.
- Tüm metin bağlantıları, düğmeler, dokümanlar veya açıklayıcı metinler, onaylanmış adlandırma kurallarına uygun olmalıdır. Örneğin, yalnızca kamu alanındaki eserlerin tamamı indirilebileceğinden, Google Kitaplar önizlemelerine bağlantı oluştururken "indir" veya "oku" fiillerini kullanmamalısınız.
Örnek marka bilinci oluşturma
Bu belgenin sonundaki örnekler bölümünde, mevcut markalama kurallarına uygun ek örnekler verilmiştir.
İstemci Tarafı API'si
İstemci tarafı dinamik bağlantının temelinde, geliştiricilerin bir veya daha fazla kitapla ilgili bilgi isteyen URL'ler oluşturmasına ve <script>
etiketini kullanarak istekleri Google Kitaplar'a göndermesine olanak tanıyan bir URL biçimi bulunur.
- Söz Dizimi Örneği:
<script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback"></script>
İstek biçimi
URL'nin biçimi, kitaplara bağlantı oluşturmak için kullanılan URL söz dizimine benzer, ancak kitap kimliği alanı virgülle ayrılmış birden fazla kitap kimliği içerebilir ve ek "jscmd" ve "callback" parametreleri vardır. İsteğe bağlı olarak, görüntülenebilirlik filtrelerini kontrol etmek için ek bağımsız değişkenler kullanılabilir.
Dynamic Links, kitapları tanımlamak için birkaç farklı yöntemi destekler: ISBN, OCLC numaraları ve LCCN anahtarları. API, bir GET isteğinin maksimum boyutuna kadar olan toplu sorgulara izin verir.
- ISBN
&bibkeys=ISBN:0451526538
(API hem ISBN 10 hem de 13'ü destekler.)- OCLC
&bibkeys=OCLC:36792831
- LCCN
&bibkeys=LCCN:96072233
JSON sonuç biçimi
Bu çağrının yanıtı, bir veya daha fazla JSON nesnesi olarak döndürülen istenen kitaplar hakkında bilgi olacaktır. JSON nesneleri aşağıdaki yapıyı kullanır:
JsonSearchResult { string bib_key; string info_url; string preview_url; string thumbnail_url; string preview; };
Bu alanlarda aşağıdaki bilgiler sağlanır:
- bib_key
- Bu kitabı sorgulamak için kullanılan tanımlayıcı.
- info_url
- Google Kitaplar'da kitapla ilgili bilgileri içeren bir sayfanın URL'si (bu kitap hakkında sayfası).
- preview_url
- Kitabın önizlemesine yönlendiren ve kullanıcıyı doğrudan kitabın kapağına yönlendiren bir URL. İstek için yalnızca Snippet Görünümü veya Önizleme yok kitapları kullanılabilirse önizleme URL'si döndürülmez.
- thumbnail_url
- Kitabın kapağının küçük resminin URL'si.
- önizleme
- Kitabın görüntülenebilirlik durumunu belirten bir değer:
full
(Tam Görünümlü kitaplar için),partial
(Sınırlı Önizlemeli kitaplar için) veyanoview
(Snippet veya Önizlemesiz kitaplar için). - yerleştirilebilir
- Kitap, Kitap Arama'daki yerleştirilmiş görüntüleyici kullanılarak üçüncü taraf sayfalara yerleştirilebiliyorsa bu boole değeri
true
olur. - jscmd
- Google Kitaplar'a gönderilen istek.
- geri çağırma
- Döndürmeyi ilettiğimiz JavaScript işlevinin adı.
- S: Dinamik bağlantıları kullanabilmek için API anahtarına veya başka bir izne ihtiyacım var mı?
- Y: Dinamik bağlantıları kullanmak için API anahtarı veya başka bir yetkilendirme gerekmez. Başlamak için örneklerimizden birini kopyalayıp yapıştırmaya başlayın.
- S: Peki ya JavaScript'i desteklemeyen ya da devre dışı bırakılan tarayıcılar?
- Y: Kullanıcının tarayıcısında JavaScript etkin olmadığında, Google Kitaplar'da bir kitabın olup olmadığını test etmenin bir yolu yoktur. JavaScript bulunmayan tarayıcılar için Google Kitaplar'ın statik bağlantı yapısını kullanmanızı öneririz, ancak bağlantı verdiğiniz kitabın Google Kitaplar'da olup olmadığını önceden bilemeyeceğinizi unutmayın.
- S: Aynı anda kaç kitap arayabilirim?
- Y: Arayabileceğiniz kitap sayısı yalnızca GET isteklerinin uzunluğuyla sınırlıdır. Microsoft Internet Explorer'da, maksimum URL uzunluğu (2.083 karakter) GET isteklerinin uzunluğunu sınırlar.
- S: Google Kitaplar az önce bir kitapla ilgili sonuçları döndürüyordu. Neden şu anda sonuç döndürmüyor?
- Y: Geliştiriciler genellikle normal olmayan miktarda istek gönderdiğinden Google Kitaplar'da bulunan güvenlik önlemlerini yanlışlıkla verebilirsiniz. Bunun olup olmadığını kontrol etmek için API tarafından döndürülen içeriği görüntüleyin. Captcha doldurma isteği gönderiliyorsa çok fazla sorgu yayınlamışsınızdır. Google Kitaplar'a giriş yapıp tekrar denemenizi öneririz.
- S: Peki ya gizlilik?
- Y: Google, kitap görüntülenebilirliği ile ilgili sorgulara yanıt verirken kimliği tanımlayabilecek nitelikte olmayan sunucu günlük verilerini alır. Kullanıcı gizliliğini ciddiye alırız ve bu verileri Gizlilik Politikamızda açıklandığı şekilde işleriz. Kullanıcılara kitap görüntülenebilirliğini içeren bir hizmet sağlıyorsanız hizmetinizin dinamik bağlantılar üzerinden de Google'a sorgu gönderdiğini kullanıcılarınıza bildirmek isteyebilirsiniz.
- Kitap sayfası için önizleme düğmesi
Sitenizdeki tek tek kitap sayfalarına "önizleme" düğmeleri eklemek için Dinamik Bağlantılar'ı kullanmayı düşünüyorsanız bunun örneği aşağıda verilmiştir. Bu uygulama, Google Kitaplar'a yönelik eşzamanlı bir çağrı kullanır. - Kurs okuma listesi
Bu örnekte, akademik bir ders için tipik bir kitap listesi gösterilmektedir. Google Kitaplar'da kitap sayfaları için bağlantı oluşturmak, kapak resimleri eklemek ve önizlemenin kullanılabilirliğini belirtmek için tek bir eşzamanlı çağrıyı kullanırız. - Alternatif kitap listesi
Önceki örneğe benzer şekilde, bu örnek de eşzamansız bir API geri çağırması kullanarak Kitap Arama'ya bağlantılar ekler. - Etkileşimli AJAX
Dinamik Bağlantıları yüksek düzeyde etkileşimli AJAX uygulamasında kullanmak isteyebilirsiniz. Bu örnekte, sayfayı yenilemeden birkaç farklı aramanın nasıl yapılacağı gösterilmektedir.
Yanıt, iki alanı olan bir JSON nesnesidir: Kitap nesneleri haritasının değerine sahip "kitaplar" ve bu istek için etkinleştirilen seçeneklerin listesini içeren "seçenekler". Herhangi bir seçenek belirtilmemişse "options" alanı yanıtta atlanabilir. Örneğin:
Request: https://books.google.com/books?jscmd=viewapi&bibkeys=0596000278,00-invalid-isbn,ISBN0765304368,0439554934&callback=ProcessGBSBookInfo Response: ProcessGBSBookInfo({ "0596000278":{ "bib_key":"0596000278", "info_url":"https://books.google.com/books?id=ezqe1hh91q4C&source=gbs_ViewAPI", "preview_url":"https://books.google.com/books?id=ezqe1hh91q4C&printsec=frontcover&sig=zSQ5gwlX1NZl_24M86KS8Rbj33Q&source=gbs_ViewAPI", "thumbnail_url":"https://books.google.com/books?id=ezqe1hh91q4C&pg=PR3&img=1&zoom=5&sig=bBmzIAIiCtMcM7Ii7TUHycqqEWg", "preview":"partial" }, "ISBN0765304368":{ "bib_key":"ISBN0765304368", "info_url":"https://books.google.com/books?id=gfg13CM_kU8C&source=gbs_ViewAPI", "preview_url":"https://books.google.com/books?id=gfg13CM_kU8C&printsec=frontcover&sig=jIrSb_SkcQRhy_VvtnKbTXjmvos&source=gbs_ViewAPI", "thumbnail_url":"https://books.google.com/books?id=gfg13CM_kU8C&pg=PP1&img=1&zoom=5&sig=LsTwGVAsy_qWYMPM6HVDTPAMokg", "preview":"full" }, "0439554934":{ "bib_key":"0439554934", "info_url":"https://books.google.com/books?id=iwiYGwAACAAJ&source=gbs_ViewAPI", "preview_url":"https://books.google.com/books?id=iwiYGwAACAAJ&source=gbs_ViewAPI", "thumbnail_url":"https://books.google.com/books?id=iwiYGwAACAAJ&printsec=frontcover&img=1&zoom=5&sig=_L6ySKDAs-8gNK28c3NyFdO22ZM", "preview":"noview"} });
Geliştiriciler daha sonra GBS sunucusundan alınan JSON sonuçlarına göre web sayfalarının içeriğini ve görünümünü değiştirebilirler. Şu anda GBS, DOM'de değişiklik yapmak için kitaplıklar sağlamamaktadır.
Parametreler ve ek alanlar
Eşzamanlı ve eşzamansız mod karşılaştırması
Eşzamansız mod
Eşzamansız Mod'da geliştirici, <script>
etiketini dokümanın <head>
bölümüne yerleştirir ve URL'yi, sayfayı oluşturmak için gereken tüm tanımlayıcıları kullanarak oluşturur. Veriler, bir değişkendeki çağrıdan alınır. Bu şekilde, kitap bilgileri dokümanın geri kalanında kullanılabilir ve HTML ve JavaScript kullanılarak kitaba hemen erişilebilir.
Eşzamanlı mod
Eşzamanlı modda, geliştirici HTML'nin <body>
ortasındaki URL'yi kullanır; yanıt, bir JavaScript geri çağırması kullanılarak işlenir.
Sık sorulan sorular
Kod örnekleri
Bu bölümde, Dynamic Links'in farklı kullanım şekillerini gösteren örnekler sağlanmaktadır. Nasıl çalıştığını görmek için herhangi bir örneği tıklayabilirsiniz. Temel kodu görmek için tarayıcınızda "kaynağı görüntüleyin".