Google 도서 동적 링크 기능을 사용하면 내 사이트에서 더욱 맞춤설정 가능하고 신뢰할 수 있는 Google 도서 링크를 만들 수 있습니다. 예를 들어 도서가 Google 색인에 포함되어 있을 때만 표시되는 '스마트' 링크를 생성할 수도 있고, Google 도서에서 책을 미리보기할 수 있는지 여부를 사용자에게 알려주는 링크를 표시할 수도 있습니다. 동적 링크 기능을 사용하면 Google 도서 링크에 썸네일 이미지를 포함할 수도 있습니다. 이 문서에서는 이 기능을 사이트에 빠르게 추가할 수 있습니다.
참고: 이 기능은 이전에는 Book Visibility API라고 했습니다.
미리보기 마법사는 동적 링크를 기반으로 구축된 도구로, 코드 몇 줄만 복사하면 사이트에서 도서 미리보기를 더욱 쉽게 연결할 수 있습니다. 이 문서는 도서 검색에 연결하는 방법을 맞춤설정하려는 고급 개발자를 대상으로 합니다.
목차
시청자층
동적 링크 문서는 Google 도서 내의 책에 연결하는 웹 애플리케이션을 작성하려는 프로그래머를 위해 마련되었습니다. 이 문서에서는 사용자가 HTTP 프로토콜 및 기본 JavaScript에 익숙하다고 가정합니다.
도서 검색 용어
Google 도서는 사용자의 현지 저작권 제한을 존중하므로 일부 지역에서는 일부 도서의 미리보기 또는 전체 보기가 지원되지 않습니다. 조회 가능성은 다음 클래스로 클러스터링됩니다.
- 전체 화면
- 책 전체를 볼 수 있습니다. 이러한 도서는 공개 도메인에 속할 수 있습니다.
- 일부 미리보기
- 도서의 일부를 볼 수 있습니다. 이 책은 저작권 보호 대상이며 Google 도서에서 사용자가 이 페이지에 액세스할 수 있도록 허가를 받았습니다. 이 도서는 사용자가 전체 페이지를 볼 수 있다는 점에서 발췌문 보기 도서와 다릅니다.
- 스니펫 보기 및 미리보기 없음
- 사용자에게는 '도서 정보' 페이지만 표시됩니다. 최대 발췌문만 사용할 수 있습니다. 스캔되지 않았거나 저작권이 적용되는 책이며 Google 도서에서 사용자의 검색어와 관련된 '발췌문'을 몇 개 이상 노출할 권한을 받지 않았습니다.
소개
정적 링크 문서에서는 Google 도서의 특정 도서 페이지로 연결되는 URL을 생성하는 매우 간단한 방법을 설명합니다. 간혹 특정 도서가 Google 도서 색인에 없거나 특정 지역의 사용자가 미리보기를 사용할 수 없는 경우가 있습니다. 정적 링크는 '블라인드'이기 때문에 때로는 원하는 효과를 얻지 못할 수도 있습니다.
동적 링크는 JavaScript를 사용하여 책의 조회가능성을 쿼리하기 위한 프로그래매틱 방식의 클라이언트 측 대체 메서드를 제공합니다. 이를 통해 도서 검색에 보다 안정적이고 예측 가능한 링크를 포함하여 사용자에게 보다 일관된 환경을 제공할 수 있습니다. 조회가능성은 최종 사용자의 위치에 따라 달라지므로 동적 링크 인터페이스는 서버 측 또는 오프라인 쿼리에 맞게 설계되지 않았습니다.
동적 링크의 기능을 알아보려면 이 문서 마지막에 나오는 코드 샘플로 건너뛰세요.
브랜드 가이드라인
동적 링크를 렌더링할 때는 Google Books API 제품군에 적용되는 브랜드 가이드라인을 준수해야 합니다. 특히 인코더-디코더 아키텍처를
- Google 도서에 대한 저작자 표시 및 링크를 유지해야 합니다.
- Google 도서의 미리보기에 연결할 때는 승인된 Google 미리보기 버튼만 사용해야 합니다.
- 모든 텍스트 링크, 버튼, 문서 또는 설명 텍스트는 승인된 명명 규칙을 준수해야 합니다. 예를 들어 Google 도서 미리보기에 링크할 때 '다운로드' 또는 '읽기'라는 동사를 사용하면 안 됩니다. 공개 도메인 저작물만 전체 다운로드할 수 있기 때문입니다.
브랜딩 예
이 문서 끝에 있는 샘플 섹션에서 현재의 브랜드 가이드라인을 준수하는 추가 예를 확인할 수 있습니다.
클라이언트 측 API
클라이언트 측 동적 링크의 핵심은 개발자가 하나 이상의 도서에 대한 정보를 요청하는 URL을 구성하고 <script>
태그를 사용하여 Google 도서에 요청을 보낼 수 있는 URL 형식입니다.
- 구문 예:
<script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback"></script>
요청 형식
URL 형식은 도서에 연결하는 데 사용되는 URL 구문과 유사하지만 도서 ID 필드에 쉼표로 구분된 도서 ID가 여러 개 포함될 수 있으며 추가 'jscmd' 및 'callback' 매개변수가 있습니다. 원하는 경우 조회가능성 필터를 제어하기 위한 추가 인수가 있을 수 있습니다.
동적 링크는 ISBN, OCLC 번호, LCCN 키 등 도서를 식별하는 여러 가지 방법을 지원합니다. API는 GET 요청의 최대 크기까지 일괄 쿼리를 허용합니다.
- ISBN
&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 도서 페이지 (도서 정보 페이지)의 URL입니다.
- preview_url
- 도서 미리보기 URL로, 사용자가 책 표지로 바로 이동할 수 있습니다. 요청에 대해 발췌문 보기 또는 미리보기 도서만 사용할 수 있는 경우 미리보기 URL이 반환되지 않습니다.
- thumbnail_url
- 책 표지 썸네일의 URL입니다.
- 프리뷰
- 책의 조회가능성 상태를 나타내는 값으로,
full
(전체보기 도서),partial
(제한된 미리보기 도서의 경우),noview
(스니펫 또는 미리보기 없음)입니다. - 삽입 가능
- 도서 검색에 삽입된 뷰어를 사용하여 타사 페이지에 도서를 삽입할 수 있는 경우 이 불리언은
true
입니다. - jscmd
- Google 도서에 대한 요청입니다.
- callback
- 반환을 전달할 JavaScript 함수의 이름입니다.
- Q: 동적 링크를 사용하려면 API 키 또는 기타 권한이 필요한가요?
- A: 동적 링크를 사용하는 데는 API 키나 다른 승인이 필요하지 않습니다. 시작하려면 예시 중 하나를 복사하여 붙여넣고 수정해 보세요.
- Q: 자바스크립트를 지원하지 않거나 사용 중지된 브라우저는 어떻게 되나요?
- A: 사용자 브라우저에 JavaScript가 사용 설정되어 있지 않으면 Google 도서에 책이 있는지 테스트할 수 없습니다. JavaScript가 없는 브라우저의 경우 Google 도서의 정적 링크 구조를 사용하는 것이 좋지만 Google 도서에 링크하려는 도서가 있는지 미리 알 수는 없습니다.
- Q: 한 번에 몇 권의 도서를 검색할 수 있나요?
- A: 검색할 수 있는 도서의 수는 GET 요청의 길이에 의해서만 제한됩니다. Microsoft Internet Explorer에서는 최대 URL 길이 (2,083자)가 GET 요청의 길이를 제한합니다.
- Q: Google 도서에서 조금 전에 도서 검색결과를 반환했습니다. 지금은 결과가 표시되지 않는 이유는 무엇인가요?
- A: 개발자는 종종 이례적인 양의 요청을 내리기 때문에 실수로 Google 도서에 안내된 보안 예방 조치를 알려 줄 수 있습니다. 이를 확인하려면 API에서 반환하는 내용을 확인하세요. 보안문자 입력을 요청하는 경우 너무 많은 검색을 실행한 것입니다. Google 도서에 로그인한 후 다시 시도해 보세요.
- Q: 개인 정보 보호는 어떻게 되나요?
- A: 도서 조회가능성에 대한 쿼리에 답변할 때 Google은 개인 식별이 불가능한 서버 로그 데이터를 수신합니다. Google은 사용자 개인 정보 보호를 매우 중요하게 여기며, 이 데이터는 개인정보처리방침에 설명된 대로 취급합니다. 도서 조회가능성이 포함된 서비스를 사용자에게 제공하는 경우, 서비스에서 동적 링크를 통해 Google에 검색어를 제출한다는 점을 사용자에게 알려야 합니다.
- 도서 페이지의 미리보기 버튼
동적 링크를 사용하여 사이트의 개별 도서 페이지에 '미리보기' 버튼을 추가하려는 경우에 적합한 예입니다. 이 구현에서는 Google 도서에 대한 동기 호출을 사용합니다. - 과정 읽기 목록
이 예는 교육 과정의 일반적인 도서 목록을 보여줍니다. Google에서는 단일 동기 호출을 사용하여 Google 도서의 페이지를 예약하고 표지 이미지를 추가하며 미리보기 사용 가능 여부를 표시합니다. - 대체 도서 목록
앞의 예와 마찬가지로 이 샘플에서는 비동기 API 콜백을 사용하여 도서 검색에 링크를 추가합니다. - 대화형 AJAX
대화형 AJAX 애플리케이션에서 동적 링크를 사용하는 데 관심이 있을 수 있습니다. 이 예에서는 페이지를 새로고침하지 않고 여러 호출을 실행하는 방법을 보여줍니다.
응답은 두 개의 필드가 있는 JSON 객체입니다. '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"} });
그런 다음 개발자는 GBS 서버에서 가져온 JSON 결과에 따라 웹페이지의 콘텐츠와 모양을 변경할 수 있습니다. 현재 GBS는 이를 위해 DOM을 수정하는 라이브러리를 제공하지 않습니다.
매개변수 및 추가 필드
동기 모드와 비동기 모드 비교
비동기 모드
비동기 모드에서 개발자는 <script>
태그를 문서의 <head>
에 배치하고 페이지를 렌더링하는 데 필요한 모든 식별자가 포함된 URL을 구성합니다. 데이터는 변수의 호출에서 수신됩니다. 이렇게 하면 문서의 나머지 부분에서 책의 정보를 사용할 수 있으며 HTML 및 자바스크립트에서 즉시 액세스할 수 있습니다.
동기 모드
동기 모드에서는 개발자가 HTML <body>
중간에 있는 URL을 사용합니다. 응답은 JavaScript 콜백을 사용하여 처리됩니다.
자주 묻는 질문(FAQ)
코드 샘플
이 섹션에서는 동적 링크를 사용하는 다양한 방법을 보여주는 샘플을 제공합니다. 예시를 클릭하면 실제 동작을 확인할 수 있습니다. 기본 코드를 보려면 브라우저에서 '소스를 확인'하세요.