Dynamic Links

ฟีเจอร์ลิงก์แบบไดนามิกของ Google Books ช่วยให้คุณสร้างลิงก์ที่ปรับแต่งได้และน่าเชื่อถือยิ่งขึ้นจาก Google Books จากเว็บไซต์ของคุณ ตัวอย่างเช่น เครื่องมือนี้ช่วยให้คุณสร้าง "smart" ลิงก์ที่ปรากฏเฉพาะเมื่อหนังสืออยู่ในดัชนีของเรา หรือแสดงลิงก์ที่บอกให้ผู้ใช้ทราบว่าจะดูตัวอย่างหนังสือบน Google Books ได้หรือไม่ นอกจากนี้ ฟีเจอร์ลิงก์แบบไดนามิกยังช่วยให้คุณใส่ภาพขนาดย่อในลิงก์ไปยัง Google Books ได้ด้วย เอกสารนี้มีวัตถุประสงค์เพื่อให้คุณเพิ่มฟังก์ชันการทํางานนี้ในเว็บไซต์ของคุณได้อย่างรวดเร็ว

หมายเหตุ: ก่อนหน้านี้ฟีเจอร์นี้เรียกว่า Book Viewability API

วิซาร์ดพรีวิวเป็นเครื่องมือที่สร้างบนลิงก์แบบไดนามิกที่ช่วยให้คุณลิงก์ไปยังหนังสือตัวอย่างจากเว็บไซต์ได้ง่ายขึ้นโดยคัดลอกโค้ดเพียงไม่กี่บรรทัด เอกสารนี้จัดทําขึ้นสําหรับนักพัฒนาซอฟต์แวร์ขั้นสูงที่ต้องการปรับแต่งวิธีการลิงก์ไปยัง Book Search

เนื้อหา

  1. ผู้ชม
  2. คําศัพท์ใน Book Search
  3. บทนำ
  4. หลักเกณฑ์การใช้แบรนด์
  5. API ฝั่งไคลเอ็นต์
    1. รูปแบบ URL คําขอ
    2. รูปแบบผลลัพธ์ JSON
  6. โหมดซิงโครนัสและอะซิงโครนัส
  7. คำถามที่พบบ่อย
  8. ตัวอย่างโค้ด

ผู้ชม

เอกสารประกอบเกี่ยวกับลิงก์แบบไดนามิกมีไว้สําหรับโปรแกรมเมอร์ที่ต้องการเขียนเว็บแอปพลิเคชันที่ลิงก์ไปยังหนังสือภายใน Google Books เอกสารนี้จะถือว่าคุณคุ้นเคยกับโปรโตคอล HTTP และ JavaScript พื้นฐาน

คําศัพท์ของ Book Search

Google Books เคารพข้อจํากัดด้านลิขสิทธิ์ในท้องถิ่นของผู้ใช้ ด้วยเหตุนี้ การแสดงตัวอย่างหรือการดูหนังสือทั้งเล่มแบบสมบูรณ์จะมีเพียงบางสถานที่เท่านั้น การมองเห็นโฆษณาจัดรวมกันเป็นคลาสต่อไปนี้

มุมมองแบบเต็ม
สามารถดูหนังสือทั้งเล่มได้ หนังสือเหล่านี้อาจอยู่ในสาธารณสมบัติ
การดูที่จํากัด
สามารถดูเนื้อหาส่วนหนึ่งในหนังสือ หนังสือเล่มนี้มีลิขสิทธิ์และ Google Books ได้รับอนุญาตให้กําหนดให้ผู้ใช้เข้าถึงหน้าเหล่านี้ได้ หนังสือเหล่านี้แตกต่างจากหนังสือในมุมมองแบบประโยคตัวอย่างตรงที่ผู้ใช้สามารถดูทุกหน้าได้
มุมมองแบบประโยคตัวอย่างและไม่มีการแสดงตัวอย่าง
ผู้ใช้จะเห็นเฉพาะ "เกี่ยวกับหนังสือ" โดยส่วนใหญ่จะมีเพียงข้อความสั้นๆ ที่ตัดตอนมาจากหนังสือ หนังสือเล่มนี้ไม่ได้รับการสแกนหรืออยู่ภายใต้ลิขสิทธิ์และ Google หนังสือไม่ได้รับอนุญาตให้แสดงโฆษณามากกว่า 2-3 ตัวอย่าง ที่เกี่ยวข้องกับข้อความค้นหาของผู้ใช้

บทนํา

เอกสารประกอบเกี่ยวกับลิงก์แบบคงที่จะอธิบายวิธีง่ายๆ ในการสร้าง URL ไปยังหน้าที่เจาะจงของหนังสือใน Google Books อย่างไรก็ตาม บางครั้งหนังสือบางเล่มไม่อยู่ในดัชนีของ Google Books หรือมีการแสดงตัวอย่างในสถานที่ตั้งทางภูมิศาสตร์บางแห่งเท่านั้น เนื่องจากลิงก์แบบคงที่เป็น "Blind," บางครั้งลิงก์เหล่านี้อาจไม่สามารถให้ผลลัพธ์ที่ต้องการ

ลิงก์แบบไดนามิกเป็นอีกทางเลือกหนึ่งทางโปรแกรมฝั่งไคลเอ็นต์ สําหรับการค้นหาความสามารถในการแสดงตัวโฆษณาของหนังสือโดยใช้ JavaScript ซึ่งช่วยให้คุณใส่ลิงก์ที่เชื่อถือได้และคาดการณ์ได้มากขึ้นไปยัง Book Search เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่สอดคล้องกันมากขึ้น เนื่องจากความสามารถในการแสดงตัวโฆษณาจะแตกต่างกันไปตามตําแหน่งที่ตั้งของผู้ใช้ปลายทาง อินเทอร์เฟซของลิงก์แบบไดนามิกจึงไม่ออกแบบมาสําหรับคําค้นหาฝั่งเซิร์ฟเวอร์หรือออฟไลน์

หากต้องการทราบว่าลิงก์แบบไดนามิกทําอะไรได้บ้าง ให้ข้ามไปที่ตัวอย่างโค้ดที่ส่วนท้ายของเอกสารนี้

หลักเกณฑ์การสร้างแบรนด์

เมื่อแสดงลิงก์แบบไดนามิก คุณต้องปฏิบัติตามหลักเกณฑ์ในการสร้างแบรนด์ซึ่งควบคุมกลุ่ม Google Books API โดยเฉพาะอย่างยิ่ง

  • คุณต้องรักษาการระบุแหล่งที่มาและลิงก์ไปยัง Google Books ไว้
  • คุณต้องใช้ปุ่ม Google Preview ที่ได้รับอนุมัติเท่านั้นเมื่อลิงก์ไปยังตัวอย่างใน Google Books
  • ลิงก์ข้อความ ปุ่ม เอกสารประกอบ หรือข้อความอธิบายใดก็ได้ต้องเป็นไปตามรูปแบบการตั้งชื่อที่ได้รับอนุมัติแล้ว ตัวอย่างเช่น คุณไม่ควรใช้คํากริยา "ดาวน์โหลด" หรือ "อ่าน" เมื่อลิงก์ไปยังตัวอย่าง Google หนังสือ เนื่องจากสามารถดาวน์โหลดได้เฉพาะผลงานที่เป็นสาธารณสมบัติทั้งหมด

ตัวอย่างการสร้างแบรนด์

Freakonomics: An Rogue Economist สํารวจแง่มุมที่ซ่อนเร้นของทุกอย่าง
โดย Steven Levitt และ Stephen Dubner

ส่วนตัวอย่างที่ส่วนท้ายของเอกสารนี้จะมีตัวอย่างเพิ่มเติมที่สอดคล้องกับหลักเกณฑ์การสร้างแบรนด์ปัจจุบัน

API ฝั่งไคลเอ็นต์

หัวใจสําคัญของลิงก์แบบไดนามิกฝั่งไคลเอ็นต์คือรูปแบบ URL ที่ช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้าง URL ที่ขอข้อมูลหนังสืออย่างน้อย 1 เล่ม และส่งคําขอไปยัง Google หนังสือโดยใช้แท็ก <script>

ตัวอย่างไวยากรณ์
<script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback"></script>

รูปแบบคําขอ

รูปแบบของ URL คล้ายกับไวยากรณ์ URL ที่ใช้ในการลิงก์กับหนังสือ แต่ช่องรหัสหนังสืออาจมีรหัสหนังสือที่คั่นด้วยคอมมาหลายรหัส และพารามิเตอร์ 'jscmd' และ 'callback' พารามิเตอร์เพิ่มเติม คุณเลือกที่จะเสนออาร์กิวเมนต์เพิ่มเติมเพื่อควบคุมตัวกรองความสามารถในการแสดงตัวโฆษณาได้

ลิงก์แบบไดนามิกรองรับวิธีระบุหนังสือหลายวิธี ได้แก่ ISBN, หมายเลข OCLC และคีย์ LCCN API จะอนุญาตการค้นหาที่รวมกันแล้วไม่เกินขนาดสูงสุดของคําขอ GET

ISBN
&bibkeys=ISBN:0451526538 (API รองรับทั้ง ISBN 10 และ 13)
ศูนย์หอสมุดคอมพิวเตอร์ออนไลน์
&bibkeys=OCLC:36792831
ของ LCCN
&bibkeys=LCCN:96072233

รูปแบบผลลัพธ์ JSON

การตอบกลับจากการโทรนี้จะเป็นข้อมูลเกี่ยวกับหนังสือที่ขอซึ่งแสดงผลเป็นออบเจ็กต์ JSON อย่างน้อย 1 รายการ ออบเจ็กต์ JSON ใช้โครงสร้างต่อไปนี้

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

โดยช่องต่อไปนี้จะมีข้อมูลต่อไปนี้

คีย์ bib_key
ตัวระบุที่ใช้ในการค้นหาในหนังสือเล่มนี้
URL ข้อมูล
URL ไปยังหน้าใน Google Books พร้อมข้อมูลเกี่ยวกับหนังสือ (หน้า"เกี่ยวกับหนังสือเล่มนี้")
URL แสดงตัวอย่าง
URL ตัวอย่างของหนังสือ ซึ่งจะนําผู้ใช้ไปยังปกหนังสือโดยตรง หากหนังสือมีแต่มุมมองแบบประโยคตัวอย่างหรือตัวอย่างหนังสือเท่านั้น ไม่มีการแสดงผล URL ตัวอย่าง
URL ภาพย่อ
URL ของภาพขนาดย่อปกหนังสือ
พรีวิว
ค่าที่ระบุสถานะการมองเห็นของหนังสือ: full (สําหรับหนังสือทั้งเล่ม), partial (สําหรับหนังสือตัวอย่างแบบจํากัด) หรือ noview (สําหรับหนังสือตัวอย่างหรือหนังสือตัวอย่าง)
ฝังได้
บูลีนนี้คือ true หากหนังสือฝังในหน้าของบุคคลที่สามได้โดยใช้โปรแกรมดูแบบฝังของ Book Search

คําตอบเป็นออบเจ็กต์ JSON ที่มี 2 ช่อง คือ "books" ที่มีค่าของแมปออบเจ็กต์หนังสือและ "options" ซึ่งมีรายการตัวเลือกที่เปิดใช้สําหรับคําขอนั้น หากไม่ได้ระบุตัวเลือก ระบบอาจละช่อง "options" ไว้ในคําตอบ เช่น

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

จากนั้นนักพัฒนาแอปสามารถเปลี่ยนเนื้อหาและลักษณะที่ปรากฏของหน้าเว็บได้ตามผลของ JSON ที่ดึงมาจากเซิร์ฟเวอร์ GBS ขณะนี้ GBS ยังไม่มีไลบรารีสําหรับแก้ไข DOM ในการดําเนินการ

พารามิเตอร์และช่องเพิ่มเติม

JSCM
คําขอไปยัง Google Books
โค้ดเรียกกลับ
ชื่อฟังก์ชัน JavaScript ที่เราส่งกลับค่า

โหมดซิงโครนัสกับอะซิงโครนัส

โหมดอะซิงโครนัส

ในโหมดอะซิงโครนัส นักพัฒนาซอฟต์แวร์จะวางแท็ก <script> ใน <head> ของเอกสารและสร้าง URL ที่มีตัวระบุทั้งหมดที่จําเป็นต่อการแสดงผลหน้าเว็บ ระบบจะรับข้อมูลจากการเรียกในตัวแปร วิธีนี้จะช่วยให้ข้อมูลหนังสือพร้อมใช้งานในส่วนที่เหลือของเอกสาร และสามารถเข้าถึงได้ใน HTML และ JavaScript ทันที

โหมดซิงโครนัส

ในโหมดซิงโครนัส นักพัฒนาซอฟต์แวร์จะใช้ URL ที่อยู่ตรงกลางของ HTML <body> โดยการตอบสนองจะดําเนินการโดยใช้โค้ดเรียกกลับ JavaScript

คำถามที่พบบ่อย

คําถาม: ฉันต้องใช้คีย์ API หรือสิทธิ์อื่นๆ เพื่อใช้ลิงก์แบบไดนามิกไหม
ตอบ: ไม่จําเป็นต้องใช้คีย์ API หรือการให้สิทธิ์อื่นๆ ในการใช้ลิงก์แบบไดนามิก ในการเริ่มต้น เพียงคัดลอกและวางหนึ่งในตัวอย่างของเรา แล้วเริ่มต้นการปรับแต่ง
คําถาม: จะเกิดอะไรขึ้นกับเบราว์เซอร์ที่ไม่รองรับ JavaScript หรือปิดใช้ JavaScript อยู่
ตอบ: ไม่มีวิธีทดสอบว่า Google Books มีหนังสือหรือไม่ในกรณีที่เบราว์เซอร์ของผู้ใช้ไม่ได้เปิดใช้ JavaScript เราขอแนะนําให้ใช้โครงสร้างลิงก์แบบคงที่ของ Google Books สําหรับเบราว์เซอร์ที่ไม่มี JavaScript แต่โปรดทราบว่าคุณไม่ทราบล่วงหน้าว่า Google Books มีหนังสือที่คุณลิงก์อยู่หรือไม่
ถาม: ฉันสามารถค้นหาหนังสือได้ครั้งละกี่เล่ม
ตอบ: จํานวนหนังสือที่คุณค้นหาได้นั้นจํากัดอยู่ที่ความยาวของคําขอ GET เท่านั้น ใน Microsoft Internet Explorer ความยาวสูงสุดของ URL (2,083 อักขระ) จะจํากัดความยาวของคําขอ GET
ถาม: Google Books แสดงผลการค้นหาสําหรับหนังสือเมื่อสักครู่ เหตุใดผลการค้นหาดังกล่าวจึงไม่แสดงผลในขณะนี้
คําตอบ: เนื่องจากนักพัฒนาซอฟต์แวร์มักออกคําขอจํานวนมากผิดปกติ คุณจึงอาจฉับพลันการป้องกันความปลอดภัยที่พบใน Google Books โดยไม่ได้ตั้งใจ หากต้องการทราบว่าเกิดปัญหานี้หรือไม่ ให้ดูสิ่งที่ API แสดงผล หากเป็นคําขอให้กรอก CAPTCHA คุณได้ออกคําค้นหามากเกินไป เราขอแนะนําให้ลงชื่อเข้าสู่ระบบ Google Books แล้วลองอีกครั้ง
ถาม: แล้วความเป็นส่วนตัวล่ะ
คําตอบ: ในการตอบคําถามเกี่ยวกับการมองเห็นหนังสือ Google จะได้รับข้อมูลบันทึกเซิร์ฟเวอร์ที่ระบุตัวบุคคลไม่ได้ เราให้ความสําคัญกับความเป็นส่วนตัวของผู้ใช้และดําเนินการกับข้อมูลนี้ตามที่อธิบายไว้ในนโยบายความเป็นส่วนตัว หากคุณให้บริการที่มีความสามารถในการแสดงตัวโฆษณาหนังสือแก่ผู้ใช้ คุณอาจต้องแจ้งให้ผู้ใช้ทราบว่าบริการของคุณจะส่งคําค้นหาไปยัง Google ผ่านลิงก์แบบไดนามิกด้วย

ตัวอย่างโค้ด

ส่วนนี้จะแสดงตัวอย่างที่ใช้วิธีต่างๆ ในการใช้ลิงก์แบบไดนามิก คุณสามารถคลิกตัวอย่างใดก็ได้เพื่อดูตัวอย่าง ดูโค้ดพื้นฐาน&"ดูแหล่งที่มา"จากเบราว์เซอร์

  • ปุ่มแสดงตัวอย่างสําหรับหน้าหนังสือ
    หากคุณตั้งใจจะใช้ลิงก์แบบไดนามิกเพื่อเพิ่มปุ่ม "preview" ในหน้าหนังสือแต่ละหน้าบนเว็บไซต์ สิ่งนี้ถือเป็นตัวอย่างสําหรับคุณ การใช้งานนี้ใช้การโทรพร้อมกันไปยัง Google Books
  • รายการสําหรับอ่านหลักสูตร
    ตัวอย่างนี้แสดงรายการหนังสือทั่วไปสําหรับหลักสูตรวิชาการ เราใช้การโทรแบบซิงโครนัสรายการเดียวเพื่อลิงก์ไปยังหน้าหนังสือใน Google Books เพิ่มรูปภาพปก และระบุความพร้อมใช้งานของตัวอย่าง
  • รายการหนังสือสํารอง
    จากตัวอย่างก่อนหน้านี้ ตัวอย่างนี้จะเพิ่มลิงก์ไปยัง Book Search โดยใช้โค้ดเรียกกลับของ API แบบอะซิงโครนัส
  • AJAX เชิงโต้ตอบ
    คุณอาจสนใจใช้ลิงก์แบบไดนามิกในแอปพลิเคชัน AJAX เชิงโต้ตอบสูง ตัวอย่างนี้แสดงวิธีออกการโทรต่างๆ โดยไม่รีเฟรชหน้า