Dynamic Links

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

  1. Kitle
  2. Kitap Arama terminolojisi
  3. Giriş
  4. Markalama kuralları
  5. İstemci Tarafı API'si
    1. İstek URL'si biçimi
    2. JSON sonuç biçimi
  6. Eşzamanlı ve eşzamansız modlar
  7. Sık sorulan sorular
  8. 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

Freakonomics: Sahte Bir Ekonomi Uzmanı Her şeyin Gizli Yönünü Keşfediyor
Yayınlayan: Steven Levitt ve Stephen Dubner

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) veya noview (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.

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

jscmd
Google Kitaplar'a gönderilen istek.
geri çağırma
Döndürmeyi ilettiğimiz JavaScript işlevinin adı.

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

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.

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".

  • 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.