ویژگی پیوندهای پویای Google Books به شما این امکان را می دهد که پیوندهای قابل تنظیم و قابل اعتماد بیشتری را به Google Books از سایت خود ایجاد کنید. به عنوان مثال، این ابزار به شما امکان میدهد پیوندهای «هوشمند» ایجاد کنید که فقط زمانی ظاهر میشوند که کتابی در فهرست ما باشد، یا پیوندهایی را نمایش دهید که به کاربران شما نشان میدهد آیا میتوان یک کتاب را در Google Books پیشنمایش کرد یا خیر. ویژگی پیوندهای پویا همچنین به شما امکان می دهد یک تصویر کوچک را در پیوند خود به Google Books قرار دهید. این سند به شما اجازه می دهد تا به سرعت این قابلیت را به سایت خود اضافه کنید.
توجه: این ویژگی قبلاً به عنوان Book Viewability API شناخته می شد.
جادوگر پیشنمایش ابزاری است که بر روی لینکهای پویا ساخته شده است که فقط با کپی کردن چند خط کد، پیوند به پیشنمایش کتاب از سایت را آسانتر میکند. این سند برای توسعه دهندگان پیشرفته تری در نظر گرفته شده است که به دنبال سفارشی کردن نحوه پیوند دادن به جستجوی کتاب هستند.
مطالب
- مخاطب
- اصطلاحات جستجوی کتاب
- مقدمه
- دستورالعمل های برندسازی
- API سمت کلاینت
- حالت های همزمان و ناهمزمان
- سوالات متداول
- نمونه کد
مخاطب
مستندات پیوندهای پویا برای برنامه نویسانی در نظر گرفته شده است که می خواهند برنامه های کاربردی وب بنویسند که به کتاب هایی در Google Books پیوند می دهند. این مستندات فرض می کند که شما با پروتکل HTTP و جاوا اسکریپت اولیه آشنا هستید.
اصطلاحات جستجوی کتاب
Google Books به محدودیتهای حق نسخهبرداری محلی کاربر احترام میگذارد و در نتیجه، پیشنمایش یا مشاهده کامل برخی از کتابها در همه مکانها در دسترس نیست. قابلیت مشاهده به کلاس های زیر دسته بندی می شود:
- نمای کامل
- کل کتاب قابل مشاهده است. این کتاب ها ممکن است در مالکیت عمومی باشند.
- پیش نمایش محدود
- بخشی از کتاب قابل مشاهده است. این کتاب تحت حق چاپ است و Google Books اجازه دسترسی به این صفحات را برای کاربران دریافت کرده است. این کتابها با کتابهای Snippet View تفاوت دارند زیرا کاربران میتوانند کل صفحات را مشاهده کنند.
- Snippet View و No Preview
- کاربران فقط صفحه «درباره کتاب» را می بینند. حداکثر فقط گزیده هایی کوتاه از کتاب موجود است. این کتاب یا اسکن نشده است یا تحت حق چاپ است و Google Books مجوزی برای افشای بیش از چند "قطعه" مربوط به عبارت جستجوی کاربر دریافت نکرده است.
مقدمه
اسناد Static Links یک روش بسیار ساده برای ایجاد URL به صفحه یک کتاب خاص در Google Books را توضیح می دهد. متأسفانه، گاهی اوقات پیش میآید که کتاب خاصی در فهرست کتابهای Google وجود ندارد، یا پیشنمایش برای کاربر در یک مکان جغرافیایی خاص در دسترس نیست. از آنجایی که پیوندهای استاتیک "کور" هستند، گاهی اوقات اثر مورد نظر را ندارند.
Dynamic Links یک روش جایگزین و برنامهریزی شده در سمت کلاینت را برای پرس و جو از قابلیت مشاهده یک کتاب با استفاده از جاوا اسکریپت ارائه میکند. این به شما امکان می دهد پیوندهای قابل اعتمادتر و قابل پیش بینی بیشتری را به جستجوی کتاب اضافه کنید، که منجر به تجربه ثابت تری برای کاربران شما می شود. از آنجا که قابلیت مشاهده با توجه به مکان کاربر نهایی متفاوت است، رابط پیوند پویا برای پرس و جوهای سمت سرور یا آفلاین طراحی نشده است.
برای درک آنچه که Dynamic Links می تواند انجام دهد، به نمونه کد در انتهای این سند بروید.
دستورالعمل های برندسازی
هنگام ارائه پیوندهای پویا، باید از دستورالعملهای نام تجاری که بر خانواده Google Books API حاکم است پیروی کنید. به طور خاص،
- شما باید اسناد و پیوندهای مربوط به Google Books را حفظ کنید.
- هنگام پیوند دادن به پیشنمایشها در Google Books باید فقط از دکمه پیشنمایش تأیید شده Google استفاده کنید.
- هر پیوند متنی، دکمه، اسناد یا متن توصیفی باید از قوانین نامگذاری تایید شده پیروی کند. برای مثال، هنگام پیوند دادن به پیشنمایشهای Google Books، نباید از افعال «دانلود» یا «خواندن» استفاده کنید، زیرا فقط آثار حوزه عمومی را میتوان بهطور کامل دانلود کرد.
نمونه برندسازی
بخش نمونهها در انتهای این سند نمونههای دیگری را ارائه میدهد که با دستورالعملهای برندسازی فعلی مطابقت دارد.
API سمت کلاینت
هسته پیوند پویا سمت سرویس گیرنده یک قالب URL است که به توسعه دهندگان این امکان را می دهد تا URL هایی را بسازند که اطلاعات یک یا چند کتاب را درخواست می کنند و درخواست ها را با استفاده از < script>
به Google Books ارسال کنند. < script>
برچسب.
- مثال نحوی:
-
< script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback">< /script>
فرمت درخواست
قالب URL شبیه به نحو URL است که برای پیوند به کتاب ها استفاده می شود ، اما فیلد شناسه کتاب ممکن است حاوی چندین شناسه کتاب جدا شده با کاما باشد و پارامترهای اضافی «jscmd» و «callback» وجود دارد. به صورت اختیاری، آرگومان های اضافی می توانند برای کنترل فیلترهای قابلیت مشاهده وجود داشته باشند.
Dynamic Links از چندین روش مختلف برای شناسایی کتابها پشتیبانی میکند: ISBN، شمارههای OCLC و کلیدهای LCCN. API به درخواستهای دستهای تا اندازه حداکثر اندازه درخواست GET اجازه میدهد.
- شابک
-
&bibkeys=ISBN:0451526538
(API از هر دو ISBN 10 و 13 پشتیبانی می کند.) - OCLC
-
&bibkeys=OCLC:36792831
- LCCN
-
&bibkeys=LCCN:96072233
فرمت نتایج JSON
پاسخ این تماس، اطلاعاتی درباره کتابهای درخواستی است که بهعنوان یک یا چند شیء JSON بازگردانده شدهاند. اشیاء JSON از ساختار زیر استفاده می کنند:
JsonSearchResult { string bib_key; string info_url; string preview_url; string thumbnail_url; string preview; };
این فیلدها اطلاعات زیر را ارائه می دهند:
- bib_key
- شناسه مورد استفاده برای پرس و جو این کتاب.
- info_url
- نشانی اینترنتی صفحه ای در Google Books با اطلاعات مربوط به کتاب (صفحه درباره این کتاب).
- preview_url
- نشانی اینترنتی پیشنمایش کتاب که کاربر را مستقیماً به جلد کتاب میبرد. اگر فقط کتابهای Snippet View یا No Preview برای درخواست موجود باشد، هیچ نشانی اینترنتی پیشنمایش بازگردانده نمیشود.
- thumbnail_url
- نشانی وب به تصویر کوچک جلد کتاب.
- پیش نمایش
- مقداری که وضعیت قابلیت مشاهده کتاب را نشان میدهد:
full
(برای کتابهای Full View)،partial
(برای کتابهای Limited Preview) یاnoview
(برای کتابهای Snippet یا No Preview). - قابل جاسازی
- اگر بتوان کتاب را با استفاده از نمایشگر تعبیه شده جستجوی کتاب در صفحات شخص ثالث جاسازی کرد، این منطق
true
است. - jscmd
- درخواست به Google Books.
- پاسخ به تماس
- نام تابع جاوا اسکریپت که بازگشت را به آن ارسال می کنیم.
- س: آیا برای استفاده از پیوندهای پویا به یک کلید API یا مجوز دیگری نیاز دارم؟
- پاسخ: برای استفاده از پیوندهای پویا به هیچ کلید API یا مجوز دیگری نیاز نیست. برای شروع، کافی است یکی از نمونه های ما را کپی و پیست کنید و شروع به سرهم بندی کنید.
- س: در مورد مرورگرهایی که یا جاوا اسکریپت را پشتیبانی نمی کنند یا آن را غیرفعال کرده اند، چطور؟
- پاسخ: زمانی که مرورگر کاربر جاوا اسکریپت را فعال نکرده باشد، هیچ راهی برای تست کتاب Google Books وجود ندارد. توصیه میکنیم از ساختار پیوند ثابت Google Books برای مرورگرهای بدون جاوا اسکریپت استفاده کنید، اما به یاد داشته باشید که نمیتوانید از قبل بدانید که آیا Google Books کتابی را که به آن پیوند میدهید دارد یا خیر.
- س: چند کتاب را می توانم در یک زمان جستجو کنم؟
- پاسخ: تعداد کتابهایی که میتوانید جستجو کنید فقط با طول درخواستهای GET محدود میشود. در Microsoft Internet Explorer، حداکثر طول URL (2083 کاراکتر) طول درخواستهای GET را محدود میکند.
- س: Google Books چند لحظه پیش نتایج یک کتاب را برمی گرداند. چرا الان نتیجه نمیده؟
- پاسخ: از آنجایی که برنامهنویسها معمولاً تعداد غیرمعمولی درخواستها را صادر میکنند، ممکن است به طور تصادفی اقدامات احتیاطی امنیتی موجود در Google Books را راهنمایی کنید. برای بررسی اینکه آیا این اتفاق میافتد، آنچه را که توسط API برگردانده میشود، مشاهده کنید. اگر درخواست پر کردن یک کپچا است، شما درخواست های زیادی صادر کرده اید. توصیه میکنیم وارد Google Books شوید و دوباره امتحان کنید.
- س: در مورد حریم خصوصی چطور؟
- پاسخ: در پاسخ به پرسشهای مربوط به قابلیت مشاهده کتاب، Google دادههای گزارش سرور غیرقابل شناسایی را دریافت میکند. ما حریم خصوصی کاربر را جدی می گیریم و با این داده ها همانطور که در خط مشی رازداری ما توضیح داده شده رفتار می کنیم. اگر خدماتی را به کاربران ارائه میدهید که شامل قابلیت مشاهده کتاب است، ممکن است بخواهید به کاربران خود اطلاع دهید که سرویس شما نیز از طریق پیوندهای پویا سؤالات خود را به Google ارسال میکند.
- دکمه پیش نمایش برای صفحه کتاب
اگر قصد دارید از پیوندهای پویا برای افزودن دکمههای «پیشنمایش» به صفحات جداگانه کتاب در سایت خود استفاده کنید، این مثال برای شماست. این پیاده سازی از تماس همزمان با Google Books استفاده می کند. - لیست خواندن دوره
این مثال یک لیست کتاب معمولی را برای یک دوره دانشگاهی نشان می دهد. ما از یک تماس همزمان برای پیوند دادن به صفحات کتاب در Google Books، اضافه کردن تصاویر جلد و نشان دادن در دسترس بودن پیشنمایش استفاده میکنیم. - فهرست کتاب جایگزین
مشابه مثال قبلی، این نمونه پیوندهایی را با استفاده از یک تماس API ناهمزمان به جستجوی کتاب اضافه میکند. - AJAX تعاملی
ممکن است علاقه مند به استفاده از پیوندهای پویا در یک برنامه بسیار تعاملی و AJAX باشید. این مثال نشان میدهد که چگونه میتوان چندین تماس مختلف را بدون بازخوانی صفحه صادر کرد.
پاسخ یک شی JSON با دو فیلد است، "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 برای انجام این کار ارائه نمیکند.
پارامترها و فیلدهای اضافی
حالت همزمان در مقابل حالت ناهمزمان
حالت ناهمزمان
در حالت Asynchronous، توسعهدهنده تگ <script>
را در <head>
سند قرار میدهد و URL را با تمام شناسههایی که برای رندر کردن صفحه مورد نیاز است، میسازد. داده ها از تماس در یک متغیر دریافت می شود. این باعث می شود اطلاعات کتاب در دسترس بقیه سند باشد و بلافاصله در HTML و جاوا اسکریپت قابل دسترسی باشد.
حالت همزمان
در حالت همزمان، توسعه دهنده از URL در وسط HTML <body>
استفاده می کند. پاسخ با استفاده از یک فراخوان جاوا اسکریپت مدیریت می شود.
سوالات متداول
نمونه کد
این بخش نمونه هایی را ارائه می دهد که روش های مختلف استفاده از پیوندهای پویا را نشان می دهد. می توانید روی هر نمونه کلیک کنید تا آن را در عمل ببینید. برای دیدن کد اصلی، از مرورگر خود "مشاهده منبع" را مشاهده کنید.