Dynamic Links

Google Kitaplar Dinamik Bağlantılar özelliği, sitenizden Google Kitaplar için daha özelleştirilebilir, güvenilir bağlantılar oluşturmanıza olanak tanır. Örneğin, bu araç yalnızca dizinimizdeki kitaplar arasında görünen "akıllı" bağlantılar oluşturmanıza veya kullanıcılara bir kitabın Google Kitaplar'da önizlenip önizlenemeyeceğini gösteren bağlantılar göstermenize olanak tanır. Dinamik Bağlantılar özelliği, Google Kitaplar bağlantınıza küçük resim eklemenizi de sağlar. Bu belge, bu işlevi sitenize hızlı bir şekilde ekleyebilmeniz için hazırlanmıştır.

Not: Bu özellik daha önce Kitap Görüntülenebilirliği API'si olarak biliniyordu.

Önizleme Sihirbazı, Dinamik Bağlantıların üzerine oluşturulmuş bir araçtır. Yalnızca birkaç satır kod kopyalayarak siteden önizlemelere bağlantı oluşturmayı daha da kolaylaştırır. Bu doküman, Kitap Arama'ya bağlama şeklini özelleştirmek isteyen daha gelişmiş geliştiriciler için hazırlanmıştır.

İçindekiler

  1. Kitle
  2. Kitap Arama terminolojisi
  3. Giriş
  4. Markalama kuralları
  5. İstemci Tarafı API'sı
    1. İstek URL 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ılar için hazırlanmıştır. Bu dokümanda HTTP protokolü ve temel JavaScript hakkında bilgi sahibi olduğunuz varsayılmaktadır.

Kitap Arama terminolojisi

Google Kitaplar, kullanıcının yerel telif hakkı kısıtlamalarına uyar ve bu nedenle, bazı kitapların önizlemeleri veya tam görünümleri tüm yerlerde kullanılamaz. 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 kısmı görüntülenebilir. Bu kitap telif hakkı kapsamındadır ve Google Kitaplar bu sayfaları kullanıcılar için erişilebilir hale getirme izni almıştır. Bu kitaplar, kullanıcıların tüm sayfaları görüntüleyebilmesi için Snippet Görüntüleme kitaplarından farklıdır.
Snippet Görünümü ve Önizleme Yok
Kullanıcılar yalnızca "Kitap hakkında" sayfasını görür. Kitaptan yalnızca kısa alıntılar kullanılabilir. Bu kitap taranmamış veya telif hakkı altındadır ve Google Kitaplar'ın, bir kullanıcının arama terimiyle ilgili birkaç snippet'ten daha fazlasını gösterme izni almamıştır.

Giriş

Statik Bağlantılar dokümanında, Google Kitaplar'daki belirli bir kitabın sayfasına ait URL'leri oluşturmanın çok basit bir yolu açıklanmaktadır. Maalesef, bazen bu belirli bir kitabın Google Kitaplar dizininde yer almaması veya önizlemenin ilgili coğrafi konumda bulunan bir kullanıcı tarafından erişilememesi gibi durumlar olabilir. Statik bağlantılar "kör" olduğundan bazen istenen etkiyi yaratamaz.

Dinamik Bağlantılar, bir kitabın görüntülenebilirliğini JavaScript kullanarak sorgulamak için alternatif, programatik istemci tarafı yöntemi sağlar. Bu yaklaşım, Kitap Arama'ya daha güvenilir ve tahmin edilebilir bağlantılar ekleyerek kullanıcılarınız için daha tutarlı bir deneyim sağlar. Görüntülenebilirlik, son kullanıcının konumuna göre değişiklik gösterdiğinden, dinamik bağlantı arayüzü sunucu tarafı veya çevrimdışı sorgular için tasarlanmamıştır.

Dynamic Links'in neler yapabileceğini anlamak için bu dokümanın sonundaki kod örneklerine geçin.

Markalama kuralları

Dinamik Bağlantılar'ı oluştururken Google Books API Ailesi'nin tabi olduğu marka bilinci oluşturma kurallarına uymanız gerekir. Özellikle,

  • İlişkilendirmenin ve Google Kitaplar'ın bağlantılarını korumanız gerekir.
  • Google Kitaplar'da önizlemelere bağlanırken yalnızca onaylı Google Önizleme düğmesini kullanmanız gerekir.
  • Metin bağlantıları, düğmeler, belgeler veya açıklayıcı metinler, onaylanmış adlandırma kurallarına uygun olmalıdır. Örneğin, Google Kitaplar önizlemelerine bağlantı oluştururken "indir" veya "okundu" fiillerini kullanmamanız gerekir, çünkü yalnızca herkese açık çalışmaların tamamı indirilebilir.

Örnek marka bilinci oluşturma

Freakonomics: Rogue Economist, Her şeyin Gizli tarafını Keşfediyor
Yayınlayan: Stephen Levitt ve Stephen Dubner

Bu dokümanın sonundaki örnekler bölümünde, mevcut markalama yönergelerine uygun ek örnekler verilmiştir.

İstemci tarafı API'si

İstemci tarafı dinamik bağlantının merkezinde, geliştiricilerin bir veya daha fazla kitapla ilgili bilgi isteyen URL'ler oluşturmasına ve istekleri <script> etiketini kullanarak 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ında birden fazla virgülle ayrılmış kitap kimliği bulunabilir. Ayrıca #&39;jscmd' ve 'callback' parametreleri de bulunabilir. İsteğe bağlı olarak, görüntülenebilirlik filtrelerini kontrol etmek için ek bağımsız değişkenler bulunabilir.

Dinamik Bağlantılar, kitapları tanımlamak için kullanılan farklı yöntemleri destekler: ISBN'ler, OCLC numaraları ve LCCN anahtarları. API, bir GET isteğinin maksimum boyutuna kadar toplu sorgulara olanak tanır.

ISBN
&bibkeys=ISBN:0451526538 (API, ISBN 10 ve 13'ü destekler.)
OCLC'ler
&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 alanlar aşağıdaki bilgileri sağlar:

bib_key
Bu kitabı sorgulamak için kullanılan tanımlayıcı.
bilgi_url'si
Google Kitaplar'daki, kitapla ilgili bilgilerin yer aldığı bir sayfanın (bu kitap hakkında sayfası) URL'si.
önizleme_url'si
Kitabın önizlemesinin URL'si, kullanıcıyı doğrudan kitabın kapağına yönlendirir. Bir istek için yalnızca Snippet Görünümü veya Önizleme Yok kitapları varsa önizleme URL'si döndürülmez.
küçük resim_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üm kitapları için), partial (Sınırlı Önizlemeli kitaplar için) veya noview (Snippet veya Önizlemesiz Kitaplar için).
yerleştirilebilir
Kitabın Kitap Arama yerleşik görüntüleyici kullanılarak üçüncü taraf sayfalarına yerleştirilebilirse bu boole true olur.

Yanıt, kitap nesnelerinin haritasına sahip "&t;"seçenekler" ve o istek için etkinleştirilen seçeneklerin listesini içeren iki alanlı bir JSON nesnesidir. Hiçbir seçenek belirtilmezse yanıtta "options" alanı kullanılmayabilir. Örnek:

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 bunun ardından, web sayfalarının içeriğini ve görünümünü, GBS sunucusundan alınan JSON sonuçlarına göre değiştirebilir. Şu anda GBS, bunu yapmak için DOM'da değişiklik yapmak üzere kitaplıklar sağlamamaktadır.

Parametreler ve ek alanlar

jscmd'dir
Google Kitaplar'a gönderilen istek.
geri çağırma
Getiriyi ilettiği JavaScript işlevinin adı.

Eşzamanlı ve eşzamansız mod

Eşzamansız mod

Eşzamansız Mod'da, geliştirici <script> etiketini dokümanın <head> parametresine yerleştirir ve URL'yi, sayfanın oluşturulması için gereken tüm tanımlayıcılarla oluşturur. Verilere değişkenden ulaşılır. Bu işlem, kitabın bilgilerinin dokümanın geri kalanı tarafından erişilebilir olmasını sağlar. Böylece, kitapa HTML ve JavaScript'ten hemen erişebilirsiniz.

Eşzamanlı mod

Eşzamanlı modda, geliştirici <body> HTML'sinin 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ı kullanmak için API anahtarı veya başka bir izne ihtiyacım var mı?
C: 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ırmanız yeterli. Ardından yazmaya başlayabilirsiniz.
S: Peki ya JavaScript'i desteklemeyen veya devre dışı bırakan tarayıcılar?
C: Kullanıcının tarayıcısında JavaScript etkinleştirilmediğinde Google Kitaplar'ın bir kitabı olup olmadığını test etmenin bir yolu yoktur. JavaScript içermeyen tarayıcılar için Google Kitaplar'ın statik bağlantı yapısını kullanmanızı öneririz ancak Google Kitaplar'ın bağlantı verdiğiniz kitaba sahip olup olmadığını önceden bilemeyeceğinizi unutmayın.
S: Bir seferde kaç kitap arayabilirim?
C: Arama yapabileceğ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 kısa süre önce bir kitap için sonuç döndürdü. Neden şu anda sonuç döndürmüyor?
C: Geliştiriciler genellikle olağan dışı miktarda istek yayınladığından Google Kitaplar'da bulunan güvenlik önlemlerini yanlışlıkla ipucu olarak verebilirsiniz. Böyle bir durumun olup olmadığını kontrol etmek için API tarafından döndürülen değerleri görüntüleyin. Bir captcha'yı doldurma isteği gönderildiyse çok fazla sorgu gönderdiniz. Google Kitaplar'a giriş yapmanızı ve tekrar denemenizi öneririz.
S: Gizlilik hakkında
C: Kitap görüntülenebilirliğine ilişkin sorguları yanıtlarken Google, kimliği tanımlayabilecek olmayan sunucu günlük verilerini alır. Kullanıcı gizliliğini ciddiye alıyoruz ve bu verileri Gizlilik Politikamızda açıklandığı şekilde ele alıyoruz. Kullanıcılara kitap görüntülenebilirliğini içeren bir hizmet sağlıyorsanız hizmetinizin dinamik bağlantılar aracılığıyla Google'a da sorgu gönderdiğini kullanıcılarınıza bildirmek isteyebilirsiniz.

Kod örnekleri

Bu bölümde, Dinamik Bağlantıları kullanmanın farklı yollarını gösteren örnekler verilmiştir. Nasıl çalıştığını görmek için örnekleri tıklayabilirsiniz. Temel kodu görmek için tarayıcınızdan "kaynağı görüntüleyin".

  • Bir kitap sayfasının önizleme düğmesi
    Sitenizdeki bağımsız kitap sayfalarına &&t;;" önizleme düğmeleri eklemek için Dinamik Bağlantılar'ı kullanmak istiyorsanız bu sizin için bir örnektir. Bu uygulama Google Kitaplar'a eşzamanlı bir çağrı kullanır.
  • Kurs okuma listesi
    Bu örnekte akademik bir kurs için tipik bir kitap listesi gösterilmektedir. Google Kitaplar'daki kitap sayfalarına bağlantı vermek, kapak resimleri eklemek ve önizleme kullanılabilirliğini belirtmek için tek bir eşzamanlı çağrı kullanıyoruz.
  • Alternatif kitap listesi
    Önceki örnekte olduğu gibi, kitap arama bağlantılarını eşzamansız bir API geri çağırması kullanarak ekler.
  • Etkileşimli AJAX
    Dinamik bağlantıları yüksek düzeyde etkileşimli, AJAX uygulamasında kullanmak isteyebilirsiniz. Bu örnekte, sayfayı yenilemeden çeşitli farklı aramaların nasıl yapılacağı gösterilmektedir.