ฟีเจอร์ลิงก์แบบไดนามิกของ Google Books ช่วยให้คุณสร้างลิงก์ที่ปรับแต่งได้และน่าเชื่อถือยิ่งขึ้นจาก Google Books จากเว็บไซต์ของคุณ ตัวอย่างเช่น เครื่องมือนี้ช่วยให้คุณสร้าง "smart" ลิงก์ที่ปรากฏเฉพาะเมื่อหนังสืออยู่ในดัชนีของเรา หรือแสดงลิงก์ที่บอกให้ผู้ใช้ทราบว่าจะดูตัวอย่างหนังสือบน Google Books ได้หรือไม่ นอกจากนี้ ฟีเจอร์ลิงก์แบบไดนามิกยังช่วยให้คุณใส่ภาพขนาดย่อในลิงก์ไปยัง Google Books ได้ด้วย เอกสารนี้มีวัตถุประสงค์เพื่อให้คุณเพิ่มฟังก์ชันการทํางานนี้ในเว็บไซต์ของคุณได้อย่างรวดเร็ว
หมายเหตุ: ก่อนหน้านี้ฟีเจอร์นี้เรียกว่า Book Viewability API
วิซาร์ดพรีวิวเป็นเครื่องมือที่สร้างบนลิงก์แบบไดนามิกที่ช่วยให้คุณลิงก์ไปยังหนังสือตัวอย่างจากเว็บไซต์ได้ง่ายขึ้นโดยคัดลอกโค้ดเพียงไม่กี่บรรทัด เอกสารนี้จัดทําขึ้นสําหรับนักพัฒนาซอฟต์แวร์ขั้นสูงที่ต้องการปรับแต่งวิธีการลิงก์ไปยัง Book Search
เนื้อหา
- ผู้ชม
- คําศัพท์ใน Book Search
- บทนำ
- หลักเกณฑ์การใช้แบรนด์
- API ฝั่งไคลเอ็นต์
- โหมดซิงโครนัสและอะซิงโครนัส
- คำถามที่พบบ่อย
- ตัวอย่างโค้ด
ผู้ชม
เอกสารประกอบเกี่ยวกับลิงก์แบบไดนามิกมีไว้สําหรับโปรแกรมเมอร์ที่ต้องการเขียนเว็บแอปพลิเคชันที่ลิงก์ไปยังหนังสือภายใน 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 หนังสือ เนื่องจากสามารถดาวน์โหลดได้เฉพาะผลงานที่เป็นสาธารณสมบัติทั้งหมด
ตัวอย่างการสร้างแบรนด์
ส่วนตัวอย่างที่ส่วนท้ายของเอกสารนี้จะมีตัวอย่างเพิ่มเติมที่สอดคล้องกับหลักเกณฑ์การสร้างแบรนด์ปัจจุบัน
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 - JSCM
- คําขอไปยัง Google Books
- โค้ดเรียกกลับ
- ชื่อฟังก์ชัน 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 เชิงโต้ตอบสูง ตัวอย่างนี้แสดงวิธีออกการโทรต่างๆ โดยไม่รีเฟรชหน้า
คําตอบเป็นออบเจ็กต์ 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 ในการดําเนินการ
พารามิเตอร์และช่องเพิ่มเติม
โหมดซิงโครนัสกับอะซิงโครนัส
โหมดอะซิงโครนัส
ในโหมดอะซิงโครนัส นักพัฒนาซอฟต์แวร์จะวางแท็ก <script>
ใน <head>
ของเอกสารและสร้าง URL ที่มีตัวระบุทั้งหมดที่จําเป็นต่อการแสดงผลหน้าเว็บ ระบบจะรับข้อมูลจากการเรียกในตัวแปร วิธีนี้จะช่วยให้ข้อมูลหนังสือพร้อมใช้งานในส่วนที่เหลือของเอกสาร และสามารถเข้าถึงได้ใน HTML และ JavaScript ทันที
โหมดซิงโครนัส
ในโหมดซิงโครนัส นักพัฒนาซอฟต์แวร์จะใช้ URL ที่อยู่ตรงกลางของ HTML <body>
โดยการตอบสนองจะดําเนินการโดยใช้โค้ดเรียกกลับ JavaScript
คำถามที่พบบ่อย
ตัวอย่างโค้ด
ส่วนนี้จะแสดงตัวอย่างที่ใช้วิธีต่างๆ ในการใช้ลิงก์แบบไดนามิก คุณสามารถคลิกตัวอย่างใดก็ได้เพื่อดูตัวอย่าง ดูโค้ดพื้นฐาน&"ดูแหล่งที่มา"จากเบราว์เซอร์