คุณลักษณะลิงก์แบบไดนามิกของ Google หนังสือจะช่วยให้คุณสามารถสร้างลิงก์ที่ปรับแต่งได้และน่าเชื่อถือยิ่งขึ้นไปยัง Google หนังสือจากเว็บไซต์ของคุณ ตัวอย่างเช่น เครื่องมือนี้จะช่วยให้คุณสามารถสร้างลิงก์ที่ "อัจฉริยะ" ซึ่งจะปรากฏขึ้นเฉพาะเมื่อหนังสืออยู่ในดัชนีของเรา หรือแสดงลิงก์ที่บอกผู้ใช้ว่าจะสามารถดูตัวอย่างหนังสือบน Google หนังสือได้หรือไม่ คุณลักษณะลิงก์แบบไดนามิกยังช่วยให้คุณรวมภาพขนาดย่อไว้ในลิงก์ไปที่ Google หนังสือได้ด้วย เอกสารนี้มีไว้เพื่อช่วยให้คุณเพิ่มฟังก์ชันนี้ในเว็บไซต์ได้อย่างรวดเร็ว
หมายเหตุ: ฟีเจอร์นี้มีชื่อเดิมว่า Book Viewability API
วิซาร์ดการแสดงตัวอย่างเป็นเครื่องมือที่สร้างมาที่ด้านบนของลิงก์แบบไดนามิก ซึ่งช่วยให้คุณลิงก์ไปยังตัวอย่างหนังสือจากเว็บไซต์ได้ง่ายขึ้นเพียงคัดลอกโค้ดเพียงไม่กี่บรรทัด เอกสารนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ขั้นสูงที่ต้องการปรับแต่งวิธีการลิงก์กับ Book Search
เนื้อหา
- ผู้ชม
- คำศัพท์เกี่ยวกับการค้นหาหนังสือ
- บทนำ
- หลักเกณฑ์การใช้แบรนด์
- API ฝั่งไคลเอ็นต์
- โหมดซิงโครนัสและโหมดอะซิงโครนัส
- คำถามที่พบบ่อย
- ตัวอย่างโค้ด
ผู้ชม
เอกสารประกอบเกี่ยวกับลิงก์แบบไดนามิกมีไว้สำหรับนักเขียนโปรแกรมที่ต้องการเขียนเว็บแอปพลิเคชันที่ลิงก์ไปยังหนังสือภายใน Google หนังสือ เอกสารนี้จะถือว่าคุณคุ้นเคยกับโปรโตคอล HTTP และ JavaScript พื้นฐาน
คำศัพท์เกี่ยวกับการค้นหาหนังสือ
Google หนังสือเคารพในข้อจำกัดด้านลิขสิทธิ์ในท้องถิ่นของผู้ใช้ ดังนั้น หน้าตัวอย่างหรือการดูทั้งเล่มของหนังสือบางเล่มไม่สามารถให้บริการได้ในบางพื้นที่ การมองเห็นโฆษณามีคลัสเตอร์อยู่ในคลาสต่อไปนี้
- มุมมองแบบเต็ม
- ดูหนังสือได้ทั้งเล่ม หนังสือเหล่านี้อาจเป็นสาธารณสมบัติ
- การดูที่จำกัด
- ดูส่วนหนึ่งของหนังสือได้ หนังสือเล่มนี้อยู่ภายใต้ลิขสิทธิ์และ Google หนังสือได้รับอนุญาตให้กำหนดให้ผู้ใช้สามารถเข้าถึงหน้าเหล่านี้ได้ หนังสือเหล่านี้แตกต่างจากหนังสือแบบมุมมองตัวอย่างตรงที่ผู้ใช้อาจดูทั้งหน้าได้
- ดูตัวอย่างและไม่มีการแสดงตัวอย่าง
- ผู้ใช้จะเห็นเฉพาะหน้า "เกี่ยวกับหนังสือ" โดยส่วนใหญ่แล้วจะมีเพียงข้อความสั้นๆ ที่ตัดตอนมาจากหนังสือเท่านั้น หนังสือเล่มนี้ยังไม่ได้รับการสแกนหรืออยู่ภายใต้ลิขสิทธิ์ และ Google หนังสือไม่ได้รับสิทธิ์ให้แสดง "ตัวอย่างข้อมูล" มากกว่า 2-3 รายการที่เกี่ยวข้องกับข้อความค้นหาของผู้ใช้
บทนำ
เอกสารเกี่ยวกับลิงก์แบบคงที่จะอธิบายวิธีการที่ง่ายมากในการสร้าง URL ไปยังหน้าของหนังสือใดเล่มหนึ่งบน Google หนังสือ อย่างไรก็ตาม มีบางกรณีที่หนังสือเล่มใดเล่มหนึ่งไม่ได้อยู่ในดัชนีของ Google หนังสือ หรือผู้ใช้สามารถดูตัวอย่างในสถานที่ตั้งทางภูมิศาสตร์หนึ่งๆ ไม่ได้ เนื่องจากลิงก์แบบคงที่เป็นแบบ "ตาบอด" บางครั้งลิงก์จึงไม่มีการทำงานได้อย่างที่ควรจะเป็น
ลิงก์แบบไดนามิกเป็นอีกทางเลือกหนึ่งแบบเป็นโปรแกรมของฝั่งไคลเอ็นต์ในการค้นหาการมองเห็นโฆษณาของหนังสือโดยใช้ JavaScript ซึ่งจะช่วยให้คุณสามารถรวมลิงก์ที่เชื่อถือได้และคาดเดาได้มากยิ่งขึ้นไปยัง Book Search ซึ่งจะนำไปสู่ประสบการณ์ที่สอดคล้องกันมากขึ้นสำหรับผู้ใช้ของคุณ เนื่องจากความสามารถในการแสดงตัวโฆษณาแตกต่างกันไปตามตำแหน่งของผู้ใช้ปลายทาง อินเทอร์เฟซลิงก์แบบไดนามิกจึงไม่ได้ออกแบบมาเพื่อข้อความค้นหาฝั่งเซิร์ฟเวอร์หรือออฟไลน์
หากต้องการทราบว่าลิงก์แบบไดนามิกทำอะไรได้บ้าง ให้ข้ามไปที่ตัวอย่างโค้ดที่ท้ายเอกสารนี้
หลักเกณฑ์การใช้แบรนด์
เมื่อแสดงผลลิงก์แบบไดนามิก คุณต้องปฏิบัติตามหลักเกณฑ์การใช้แบรนด์ที่มีผลบังคับใช้กับกลุ่ม Google Books API โดยเฉพาะอย่างยิ่ง
- คุณต้องแสดงที่มาและลิงก์ไปยัง Google หนังสือ
- คุณต้องใช้ปุ่มแสดงตัวอย่างของ Google ที่ได้รับอนุมัติเท่านั้นเมื่อลิงก์กับการแสดงตัวอย่างใน Google Books
- ลิงก์ข้อความ ปุ่ม เอกสารประกอบ หรือข้อความอธิบายควรเป็นไปตามแบบแผนการตั้งชื่อที่ได้รับอนุมัติ ตัวอย่างเช่น คุณไม่ควรใช้คำกริยา "ดาวน์โหลด" หรือ "อ่าน" เมื่อลิงก์ไปยังการแสดงตัวอย่างของ Google หนังสือ เนื่องจากเฉพาะผลงานที่เป็นสาธารณสมบัติเท่านั้นที่สามารถดาวน์โหลดได้ทั้งหมด
ตัวอย่างการสร้างแบรนด์
ส่วนตัวอย่างที่ตอนท้ายของเอกสารนี้มีตัวอย่างเพิ่มเติมซึ่งเป็นไปตามหลักเกณฑ์การใช้แบรนด์ปัจจุบัน
API ฝั่งไคลเอ็นต์
หัวใจสำคัญของลิงก์แบบไดนามิกฝั่งไคลเอ็นต์คือรูปแบบ URL ที่ช่วยให้นักพัฒนาซอฟต์แวร์สร้าง URL ที่ขอข้อมูลในหนังสืออย่างน้อย 1 เล่มและส่งคำขอไปยัง Google Books โดยใช้แท็ก <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
- ตัวระบุที่ใช้ค้นหาหนังสือเล่มนี้
- info_url
- URL ไปยังหน้าภายใน Google Books ที่มีข้อมูลในหนังสือ (หน้าเกี่ยวกับหนังสือเล่มนี้)
- preview_url
- URL ไปยังตัวอย่างหนังสือ ซึ่งจะนำผู้ใช้ไปยังหน้าปกของหนังสือโดยตรง หากมีเฉพาะหนังสือที่อยู่ในมุมมองแบบประโยคตัวอย่างหรือหนังสือที่ไม่มีการแสดงตัวอย่างตามคำขอ ระบบจะไม่แสดงผล URL ตัวอย่าง
- thumbnail_url
- URL ไปยังภาพขนาดย่อของปกหนังสือ
- พรีวิว
- ค่าที่ระบุสถานะความสามารถในการแสดงตัวโฆษณาของหนังสือ ซึ่งได้แก่
full
(สำหรับหนังสือทั้งเล่ม),partial
(สำหรับหนังสือที่มีตัวอย่างแบบจำกัด) หรือnoview
(สำหรับหนังสือตัวอย่างหรือหนังสือที่ไม่มีตัวอย่าง) - แบบฝังได้
- บูลีนนี้คือ
true
หากสามารถฝังหนังสือลงในหน้าของบุคคลที่สามโดยใช้โปรแกรมดูที่ฝังของการค้นหาหนังสือ - jscmd
- คำขอไปยัง Google Books
- Callback
- ชื่อฟังก์ชัน JavaScript ที่เราส่งกลับไปยัง
- ถาม: ฉันต้องมีคีย์ API หรือสิทธิ์อื่นๆ เพื่อใช้ลิงก์แบบไดนามิกไหม
- ตอบ: ไม่จำเป็นต้องมีคีย์ API หรือการให้สิทธิ์อื่นๆ เพื่อใช้ลิงก์แบบไดนามิก เริ่มต้นด้วยการคัดลอกและวางตัวอย่าง 1 ตัวอย่างของเราและเริ่มปรับแต่ง
- ถาม: แล้วเบราว์เซอร์ที่ไม่รองรับ 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 หนังสือแล้วลองอีกครั้ง
- คำถาม: แล้วความเป็นส่วนตัวล่ะ
- คำตอบ: Google จะได้รับข้อมูลบันทึกของเซิร์ฟเวอร์ที่ระบุตัวบุคคลไม่ได้ในการตอบคำถามเกี่ยวกับการมองเห็นโฆษณาของหนังสือ เราให้ความสำคัญกับความเป็นส่วนตัวของผู้ใช้อย่างจริงจังและจัดการข้อมูลดังกล่าวตามที่อธิบายไว้ในนโยบายความเป็นส่วนตัวของเรา หากคุณให้บริการที่มีความสามารถในการแสดงหนังสือแก่ผู้ใช้ คุณอาจต้องแจ้งให้ผู้ใช้ทราบว่าบริการดังกล่าวจะส่งการค้นหาไปยัง Google ผ่านลิงก์แบบไดนามิกด้วย
- ปุ่มแสดงตัวอย่างสำหรับหน้าหนังสือ
หากคุณต้องการใช้ลิงก์แบบไดนามิกเพื่อเพิ่มปุ่ม "แสดงตัวอย่าง" ให้กับหน้าหนังสือแต่ละหน้าในเว็บไซต์ จะแสดงตัวอย่างให้คุณด้านล่างนี้ การปรับใช้งานนี้ใช้การเรียกพร้อมกันไปยัง Google Books - เรื่องรออ่านในหลักสูตร
ตัวอย่างนี้แสดงรายการหนังสือทั่วไปสำหรับหลักสูตรวิชาการ เราใช้การเรียกแบบพร้อมกันครั้งเดียวเพื่อลิงก์หน้าหนังสือใน Google Books เพิ่มภาพหน้าปก และระบุหน้าตัวอย่างที่พร้อมให้บริการ - รายการหนังสือสำรอง
คล้ายกับตัวอย่างก่อนหน้านี้ โดยเป็นการเพิ่มลิงก์ไปยัง Book Search โดยใช้ Callback ของ API แบบอะซิงโครนัส - AJAX แบบอินเทอร์แอกทีฟ
คุณอาจสนใจใช้ลิงก์แบบไดนามิกในแอปพลิเคชัน AJAX แบบอินเทอร์แอกทีฟสูง ตัวอย่างนี้แสดงวิธีโทรออกหลายรายการโดยไม่ต้องรีเฟรชหน้า
การตอบกลับเป็นออบเจ็กต์ JSON ที่มี 2 ช่อง ซึ่งก็คือ "books" ซึ่งมีค่าของแมปออบเจ็กต์หนังสือ และ "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 Callback
คำถามที่พบบ่อย
ตัวอย่างโค้ด
ส่วนนี้จะแสดงตัวอย่างที่แสดงให้เห็นวิธีต่างๆ ในการใช้ลิงก์แบบไดนามิก คุณคลิกตัวอย่างใดก็ได้เพื่อดูการทำงาน หากต้องการดูโค้ดที่สำคัญ ให้ "ดูแหล่งที่มา" จากเบราว์เซอร์