Dynamic Links

Fitur Dynamic Links Google Buku memungkinkan Anda membuat link yang lebih dapat disesuaikan dan andal ke Google Buku dari situs Anda. Misalnya, alat ini memungkinkan Anda membuat "smart" link yang hanya muncul saat buku ada di indeks kami, atau menampilkan link yang menunjukkan kepada pengguna apakah buku dapat dipratinjau di Google Buku atau tidak. Fitur Dynamic Links juga memungkinkan Anda menyertakan gambar thumbnail pada link ke Google Buku. Dokumen ini dimaksudkan untuk memungkinkan Anda menambahkan fungsi ini ke situs Anda dengan cepat.

Catatan: Fitur ini sebelumnya dikenal sebagai Book Visibility API.

Wizard Pratinjau adalah alat yang dibuat di atas Dynamic Links yang mempermudah penautan pratinjau buku dari situs cukup dengan menyalin beberapa baris kode. Dokumen ini ditujukan bagi pengembang tingkat lanjut yang ingin menyesuaikan cara menautkan ke Penelusuran Buku.

Daftar Isi

  1. Penonton
  2. Terminologi Penelusuran Buku
  3. Pengantar
  4. Pedoman branding
  5. Client-side API
    1. Format URL permintaan
    2. Format hasil JSON
  6. Mode sinkron dan asinkron
  7. Pertanyaan umum (FAQ)
  8. Contoh kode

Penonton

Dokumentasi link dinamis ditujukan untuk programmer yang ingin menulis aplikasi web yang terhubung ke buku dalam Google Buku. Dokumentasi ini mengasumsikan bahwa Anda sudah memahami protokol HTTP dan JavaScript dasar.

Terminologi Penelusuran Buku

Google Buku menghormati pembatasan hak cipta lokal milik pengguna, dan akibatnya, pratinjau atau tampilan penuh beberapa buku tidak tersedia di semua lokasi. Visibilitas dikelompokkan ke dalam class berikut:

Layar Penuh
Seluruh buku dapat dilihat. Buku ini mungkin berada dalam domain publik.
Pratinjau Terbatas
Sebagian buku dapat dilihat. Buku ini dilindungi hak cipta dan Google Buku telah menerima izin untuk membuat halaman tersebut dapat diakses oleh pengguna. Buku ini berbeda dengan buku Tampilan Cuplikan karena pengguna dapat melihat seluruh halaman.
Tampilan Penggalan dan Tanpa Pratinjau
Pengguna hanya melihat halaman "Tentang buku". Hanya tersedia kutipan singkat dari buku tersebut. Buku ini belum dipindai, atau berada di bawah hak cipta dan Google Buku belum menerima izin untuk mengekspos lebih dari beberapa "cuplikan" yang terkait dengan istilah penelusuran pengguna.

Pengantar

Dokumentasi Link Statis menjelaskan cara yang sangat sederhana untuk membuat URL pada halaman buku tertentu di Google Buku. Sayangnya, terkadang buku tertentu tidak ada dalam indeks Google Buku, atau pratinjau tidak tersedia bagi pengguna di lokasi geografis tertentu. Karena Static Links adalah "blind," terkadang link gagal memiliki efek yang diinginkan.

Dynamic Links menyediakan metode sisi klien terprogram yang alternatif untuk membuat kueri visibilitas buku menggunakan JavaScript. Tindakan ini memungkinkan Anda menyertakan link yang lebih andal dan dapat diprediksi ke Penelusuran Buku, yang menghasilkan pengalaman yang lebih konsisten bagi pengguna Anda. Karena visibilitas bervariasi sesuai dengan lokasi pengguna akhir, antarmuka link dinamis tidak dirancang untuk kueri sisi server atau offline.

Untuk memahami apa saja yang dapat dilakukan Dynamic Links, langsung ke contoh kode di akhir dokumen ini.

Panduan branding

Saat merender Dynamic Link, Anda harus mematuhi pedoman branding yang mengatur Google Books API Family. Khususnya,

  • Anda harus mempertahankan atribusi dan link ke Google Buku.
  • Anda hanya boleh menggunakan tombol Pratinjau Google yang disetujui saat menautkan ke pratinjau di Google Buku.
  • Setiap link teks, tombol, dokumentasi, atau teks deskriptif harus mematuhi konvensi penamaan yang disetujui. Misalnya, Anda tidak boleh menggunakan kata kerja "download" atau "baca" saat menautkan ke pratinjau Google Buku, karena hanya karya domain publik yang dapat didownload secara keseluruhan.

Contoh branding

Freakonomics: An Rogue Economist Menjelajahi Sisi Tersembunyi dari Semuanya
Oleh Steven Levitt dan Stephen Dubner

Bagian contoh di akhir dokumen ini memberikan contoh tambahan yang sesuai dengan pedoman branding saat ini.

API sisi klien

Inti dari link dinamis sisi klien adalah format URL yang memungkinkan developer membuat URL yang meminta informasi tentang satu atau beberapa buku dan mengirim permintaan ke Google Buku menggunakan tag <script>.

Contoh Sintaksis:
<script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback"></script>

Format permintaan

Format URL-nya mirip dengan sintaksis URL yang digunakan untuk menautkan ke buku, tetapi kolom ID buku dapat berisi beberapa ID buku yang dipisahkan koma. Ada juga parameter 'jscmd' serta 'callback'. Secara opsional, argumen tambahan dapat muncul untuk mengontrol filter visibilitas.

Dynamic Links mendukung beberapa metode yang berbeda untuk mengidentifikasi buku: ISBN, nomor OCLC, dan kunci LCCN. API ini memungkinkan kueri yang dikelompokkan dengan ukuran hingga maksimal ukuran permintaan GET maksimal.

ISBN
&bibkeys=ISBN:0451526538 (API mendukung ISBN 10 dan 13.)
OCLC
&bibkeys=OCLC:36792831
LCCN
&bibkeys=LCCN:96072233

Format hasil JSON

Respons dari panggilan ini akan menjadi informasi tentang buku yang diminta yang ditampilkan sebagai satu atau beberapa objek JSON. Objek JSON menggunakan struktur berikut:

JsonSearchResult {
    string bib_key;
    string info_url;
    string preview_url;
    string thumbnail_url;
    string preview;
};

Kolom ini memberikan informasi berikut:

kunci_sepeda
ID yang digunakan untuk mengirimkan kueri ke buku ini.
info_url
URL ke halaman dalam Google Buku yang berisi informasi tentang buku (halaman tentang buku ini).
url_pratinjau
URL ke pratinjau buku, yang akan mengarahkan pengguna langsung ke sampul buku. Jika hanya buku Tampilan Cuplikan atau Tidak Ada Pratinjau yang tersedia untuk permintaan, tidak ada URL pratinjau yang akan ditampilkan.
thumbnail_url
URL yang mengarah ke thumbnail sampul buku.
pratinjau
Nilai yang menunjukkan status visibilitas buku: full (untuk buku Tampilan Penuh), partial (untuk buku Pratinjau Terbatas), atau noview (untuk buku Cuplikan atau Tanpa Pratinjau).
dapat disematkan
Boolean ini adalah true jika buku dapat disematkan ke halaman pihak ketiga menggunakan penampil tersemat Penelusuran Buku.

Responsnya adalah objek JSON dengan dua kolom, "buku" yang memiliki nilai peta objek buku dan "opsi" yang berisi daftar opsi yang diaktifkan untuk permintaan tersebut. Jika tidak ada opsi yang ditentukan, kolom "opsi" dapat dihilangkan dalam respons. Contoh:

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"}
});

Kemudian, developer dapat mengubah konten dan tampilan halaman web mereka berdasarkan hasil JSON yang diambil dari server GBS. Saat ini, GBS tidak menyediakan library untuk mengubah DOM guna melakukannya.

Parameter dan kolom tambahan

jscmd
Permintaan ke Google Buku.
callback
Nama fungsi JavaScript yang kita teruskan dengan return.

Mode sinkron vs. asinkron

Mode asinkron

Dalam Mode Asinkron, developer menempatkan tag <script> di <head> dokumen dan membuat URL dengan semua ID yang diperlukan untuk merender halaman. Data diterima dari panggilan di variabel. Hal ini membuat informasi buku tersedia untuk bagian dokumen lainnya dan dapat segera diakses dalam HTML dan JavaScript.

Mode sinkron

Dalam mode Sinkron, developer menggunakan URL di tengah <body> HTML; responsnya ditangani menggunakan callback JavaScript.

Pertanyaan umum (FAQ)

T: Apakah saya memerlukan kunci API atau izin lainnya untuk menggunakan link dinamis?
J: Tidak memerlukan kunci API atau otorisasi lainnya untuk menggunakan link dinamis. Untuk memulai, cukup salin dan tempel salah satu contoh kami dan mulai bermain-main.
T: Bagaimana dengan browser yang tidak mendukung JavaScript atau menonaktifkannya?
J: Tidak ada cara untuk menguji apakah Google Buku memiliki buku atau tidak jika browser pengguna tidak mengaktifkan JavaScript. Sebaiknya gunakan struktur link statis Google Buku untuk browser tanpa JavaScript, tetapi perlu diingat bahwa Anda tidak dapat mengetahui terlebih dahulu apakah Google Buku memiliki link yang Anda tautkan.
T: Berapa banyak buku yang dapat saya telusuri sekaligus?
J: Jumlah buku yang dapat Anda telusuri hanya dibatasi oleh panjang permintaan GET. Di Microsoft Internet Explorer, panjang URL maksimum (2.083 karakter) membatasi panjang permintaan GET.
T: Google Buku menampilkan hasil untuk buku beberapa saat yang lalu. Mengapa tidak sekarang menampilkan hasil?
J: Karena developer sering kali mengeluarkan jumlah permintaan yang tidak biasa, Anda mungkin tidak sengaja memberikan tindakan pencegahan keamanan yang ditemukan di Google Buku. Untuk memeriksa apakah hal ini terjadi, lihat apa yang ditampilkan oleh API. Jika ini adalah permintaan untuk mengisi captcha, Anda telah mengeluarkan terlalu banyak kueri. Sebaiknya Anda login ke Google Buku dan mencoba lagi.
T: Bagaimana dengan privasi?
J: Dalam menjawab kueri untuk visibilitas buku, Google menerima data log server yang tidak dapat diidentifikasi secara pribadi. Kami menangani privasi pengguna dengan serius dan memperlakukan data ini sebagaimana dijelaskan dalam Kebijakan Privasi kami. Jika Anda menyediakan layanan yang menyertakan visibilitas buku kepada pengguna, sebaiknya beri tahu pengguna bahwa layanan Anda juga mengirimkan kueri ke Google melalui link dinamis.

Contoh kode

Bagian ini memberikan contoh yang menggambarkan berbagai cara menggunakan Dynamic Links. Anda dapat mengklik contoh mana pun untuk melihatnya beraksi. Untuk melihat kode pokok, "lihat sumber" dari browser Anda.

  • Tombol pratinjau untuk halaman buku
    Jika Anda ingin menggunakan Dynamic Links untuk menambahkan "pratinjau" tombol ke setiap halaman buku di situs Anda, ini adalah contoh untuk Anda. Implementasi ini menggunakan panggilan sinkron ke Google Buku.
  • Daftar bacaan kursus
    Contoh ini menampilkan daftar buku untuk kursus akademis. Kami menggunakan satu panggilan sinkron untuk menautkan ke halaman buku di Google Buku, menambahkan gambar sampul, dan menunjukkan ketersediaan pratinjau.
  • Daftar buku alternatif
    Mirip dengan contoh sebelumnya, contoh ini menambahkan link ke Penelusuran Buku menggunakan callback API asinkron.
  • AJAX Interaktif
    Anda mungkin tertarik menggunakan Dynamic Links dalam aplikasi AJAX yang sangat interaktif. Contoh ini menunjukkan cara melakukan sejumlah panggilan yang berbeda tanpa memuat ulang halaman.