目次
はじめに
このドキュメントは、Books API とやり取りできるアプリケーションを作成するデベロッパーを対象としています。Google ブックスは、世界中の書籍コンテンツをデジタル化し、ウェブで見つけやすくすることを使命としています。Books API を使用すると、そのコンテンツを検索してアクセスできるほか、そのコンテンツに関するパーソナライズを作成して表示できます。
Google ブックスのコンセプトに慣れていない場合は、コーディングを開始する前にスタートガイドをお読みください。
リクエストの承認とアプリケーションの識別
アプリケーションが Books API に送信するすべてのリクエストでは、Google に対してアプリケーションを指定する必要があります。アプリケーションを識別する方法には、OAuth 2.0 トークンを使用する(リクエストの承認も行う)方法と、アプリケーションの API キーを使用する方法があります(この 2 つは併用できます)。これらのオプションのどちらを使用するかを決定する方法は次のとおりです。
- リクエストに承認が必要である場合(個人の限定公開データについてのリクエストなど)、アプリケーションはリクエストとともに OAuth 2.0 トークンを提供する必要があります。アプリケーションが API キーも提供することがありますが、これは必須ではありません。
- リクエストに承認が必要でない場合(一般公開データについてのリクエストなど)、アプリケーションは API キーまたは OAuth 2.0 トークンのいずれか、または両方を提供する必要があります。
認証プロトコルについて
リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の認証プロトコルには対応していません。アプリケーションで「Google でログイン」を使用している場合、承認手続きの一部が自動化されます。
OAuth 2.0 を使用したリクエストの承認
非公開のユーザーデータに対する Books API へのリクエストは、認証済みユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。
- アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。登録すると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API Console で Books API を有効にします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
- アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
- アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
- Google がそのリクエストとトークンが有効であると判断すると、リクエストされたデータが返されます。
プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。
Books API の OAuth 2.0 のスコープ情報は次のとおりです。
https://www.googleapis.com/auth/books
OAuth 2.0 を使用してアクセスをリクエストする場合、アプリケーションを登録したときに Google から提供された情報(クライアント ID やクライアント シークレットなど)に加えて、スコープ情報が必要になります。
ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。さまざまなプログラミング言語で利用できます。詳細についてはライブラリとサンプルのページをご覧ください。
API キーの取得と使用
一般公開データに対する Books API へのリクエストには、識別子(API キーまたはアクセス トークン)が含まれている必要があります。
API キーを取得するには:
- API コンソールで [認証情報] ページを開きます。
-
この API は 2 種類の認証情報をサポートします。プロジェクトに適したいずれかの認証情報を作成します。
-
OAuth 2.0: アプリケーションからユーザーの限定公開データをリクエストする場合は、リクエストとともに OAuth 2.0 トークンを送信する必要があります。アプリケーションは、トークンを取得するためにまずクライアント ID を送信します。場合によってはクライアント シークレットも送信します。ウェブ アプリケーション、サービス アカウント、インストールしたアプリケーションについて OAuth 2.0 認証情報を生成できます。
詳細については、OAuth 2.0 ドキュメントをご覧ください。
-
API キー: OAuth 2.0 トークンが提供されないリクエストでは、API キーを送信する必要があります。 キーによりプロジェクトが識別され、API アクセス、割り当て、レポートが提供されます。
API は、いくつかのタイプの API キーをサポートします。必要とする API キーのタイプが存在しない場合は、[認証情報作成] > [API キー] をクリックして、コンソールで API キーを作成します。本番環境でそれを使用する前にキーを制限するには、[キーを制限] をクリックして、いずれかの制限を選択します。
-
API キーの安全性を保つには、API キーを安全に使用するためのおすすめの方法に従ってください。
API キーを作成したら、アプリケーションですべてのリクエスト URL の末尾にクエリ パラメータ key=yourAPIKey
を追加できます。
API キーは、安全に URL に埋め込むことができます。エンコーディングの必要はありません。
Google ブックス ID
特定の API メソッド呼び出しでは、ID フィールドを指定する必要があります。Google ブックスでは、次の 3 種類の ID が使用されます。
- 巻 ID - Google ブックスが認識している各巻に割り当てられる一意の文字列。ボリューム ID の例は
_LettPDhwR0C
です。API を使用してボリューム ID を取得するには、Volume リソースを返すリクエストを送信します。ボリューム ID はid
フィールドにあります。 - ブックセクション ID - ユーザーのライブラリ内のブックセクションに割り当てられた数値。Google は、すべてのユーザーに次の ID のいくつかの定義済みセクションを提供しています。
- お気に入り: 0
- 購入済み: 1
- 読み取り: 2
- 読み上げ中: 3
- 読了済み: 4
- 審査済み: 5
- 最近表示したコンテンツ: 6
- マイ eBooks: 7
- おすすめの本: 8 ユーザーにおすすめする書籍がない場合、このセクションは存在しません。
id
フィールドにあります。 - ユーザー ID - 各ユーザーに割り当てられる一意の数値。これらの値は、他の Google サービスで使用される ID 値と同じである必要はありません。現在、ユーザー ID を取得する唯一の方法は、認証済みリクエストで取得したブックスタンド リソースの selfLink からユーザー ID を抽出することです。ユーザー ID は、ブックス サイトから取得することもできます。ユーザーは API または Google ブックス サイトから他のユーザーのユーザー ID を取得することはできません。他のユーザーがメールなどでその情報を明示的に共有する必要があります。
Google ブックス サイトの ID
Books API で使用する ID は、Google ブックス サイトで使用される ID と同じです。
- ボリューム ID
サイト上の特定の巻を表示すると、
id
URL パラメータに巻 ID が表示されます。次に例を示します。https://books.google.com/ebooks?id=buc0AAAAMAAJ&dq=holmes&as_brr=4&source=webstore_bookcard
- 書架 ID
サイト上の特定のブックシェルフを表示すると、
as_coll
URL パラメータにブックシェルフ ID が表示されます。次に例を示します。https://books.google.com/books?hl=en&as_coll=0&num=10&uid=11122233344455566778&source=gbs_slider_cls_metadata_0_mylibrary
- ユーザー ID
サイトのライブラリを表示すると、
uid
URL パラメータにユーザー ID が表示されます。次に例を示します。https://books.google.com/books?uid=11122233344455566778&source=gbs_lp_bookshelf_list
ユーザーの現在地の設定
Google ブックスは、エンドユーザーの所在地に関連する著作権、契約、その他の法的制限を遵守します。そのため、一部のユーザーは、特定の国の本コンテンツにアクセスできない場合があります。たとえば、一部の書籍は米国でのみ「プレビュー可能」です。他の国のユーザーには、そのようなプレビュー リンクは表示されません。したがって、API の結果は、サーバーまたはクライアント アプリケーションの IP アドレスに基づいて制限されます。
ボリュームの操作
検索の実行
ボリュームの検索を実行するには、次の URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/books/v1/volumes?q=search+terms
このリクエストには、必須のパラメータが 1 つあります。
q
- このテキスト文字列を含むボリュームを検索します。検索語句に指定できる特別なキーワードを使用して、特定のフィールドで検索できます。たとえば、次のようなキーワードがあります。intitle:
このキーワードの後に続くテキストがタイトルに含まれている結果を返します。inauthor:
このキーワードの後のテキストが作成者に見つかった結果を返します。inpublisher:
このキーワードの後に続くテキストがパブリッシャーで見つかった結果を返します。subject:
このキーワードの後のテキストがボリュームのカテゴリリストに含まれている結果を返します。isbn:
このキーワードの後に続くテキストが ISBN 番号である結果を返します。lccn:
このキーワードの後に続くテキストが Library of Congress Control Number である結果を返します。oclc:
このキーワードの後に続くテキストがオンライン コンピュータ ライブラリ センター番号である結果を返します。
リクエスト
ダニエル キーズ著の「Flowers for Algernon」を検索する例を次に示します。
GET https://www.googleapis.com/books/v1/volumes?q=flowers+inauthor:keyes&key=yourAPIKey
注: 検索の実行には認証は必要ないため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要はありません。ただし、認証付きで呼び出しを行うと、各 Volume には購入ステータスなどのユーザー固有の情報が含まれます。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードとボリュームの結果を返します。
200 OK { "kind": "books#volumes", "items": [ { "kind": "books#volume", "id": "_ojXNuzgHRcC", "etag": "OTD2tB19qn4", "selfLink": "https://www.googleapis.com/books/v1/volumes/_ojXNuzgHRcC", "volumeInfo": { "title": "Flowers", "authors": [ "Vijaya Khisty Bodach" ], ... }, { "kind": "books#volume", "id": "RJxWIQOvoZUC", "etag": "NsxMT6kCCVs", "selfLink": "https://www.googleapis.com/books/v1/volumes/RJxWIQOvoZUC", "volumeInfo": { "title": "Flowers", "authors": [ "Gail Saunders-Smith" ], ... }, { "kind": "books#volume", "id": "zaRoX10_UsMC", "etag": "pm1sLMgKfMA", "selfLink": "https://www.googleapis.com/books/v1/volumes/zaRoX10_UsMC", "volumeInfo": { "title": "Flowers", "authors": [ "Paul McEvoy" ], ... }, "totalItems": 3 }
省略可能なクエリ パラメータ
ボリュームの検索を行う場合は、標準のクエリ パラメータに加えて、次のクエリ パラメータを使用できます。
ダウンロード形式
download
パラメータを使用すると、
を値 epub
に設定することで、返される結果を、利用可能なダウンロード形式が epub
のボリュームに制限できます。
次の例では、EPUB のダウンロードが可能な書籍を検索します。
GET https://www.googleapis.com/books/v1/volumes?q=pride+prejudice&download=epub&key=yourAPIKey
フィルタリング
filter
パラメータを使用して、次のいずれかの値に設定することで、返される結果をさらに制限できます。
partial
- テキストの一部をプレビューできる結果を返します。full
- すべてのテキストが表示可能な結果のみを返します。free-ebooks
- Google の無料電子書籍の結果のみを返します。paid-ebooks
- 価格が設定されている Google 電子書籍の結果のみを返します。ebooks
- Google 電子書籍(有料または無料)の結果のみを返します。電子書籍以外のコンテンツには、限定プレビューで提供され、販売されていないパブリッシャー コンテンツや雑誌などがあります。
次の例では、検索結果を無料の電子書籍に限定しています。
GET https://www.googleapis.com/books/v1/volumes?q=flowers&filter=free-ebooks&key=yourAPIKey
ページネーション
ボリューム リストをページ分けするには、リクエストのパラメータに次の 2 つの値を指定します。
startIndex
- コレクション内の開始位置。最初のアイテムのインデックスは 0 です。maxResults
- 返される結果の最大数。デフォルトは 10 で、最大許容値は 40 です。
印刷タイプ
printType
パラメータを使用して、次のいずれかの値に設定することで、返される結果を特定の印刷またはパブリケーション タイプに制限できます。
all
- 印刷タイプによる制限なし(デフォルト)。books
- 書籍の結果のみを返します。magazines
- 雑誌の結果を返します。
次の例では、検索結果を雑誌に制限しています。
GET https://www.googleapis.com/books/v1/volumes?q=time&printType=magazines&key=yourAPIKey
予測
projection
パラメータと次のいずれかの値を使用して、返される Volume フィールドの事前定義されたセットを指定できます。
full
- すべての Volume フィールドを返します。lite
- 特定のフィールドのみを返します。ボリュームのリファレンスで二重アスタリスクでマークされているフィールドの説明を参照して、どのフィールドが含まれているかを確認します。
次の例では、限定的なボリューム情報を含む検索結果が返されます。
GET https://www.googleapis.com/books/v1/volumes?q=flowers&projection=lite&key=yourAPIKey
並べ替え
デフォルトでは、ボリュームの検索リクエストは maxResults
個の結果を返します。ここで、maxResults
は(上記の)ページ設定で使用されるパラメータで、検索語句との関連性に基づいて並べ替えられます。
順序を変更するには、orderBy
パラメータを次のいずれかの値に設定します。
relevance
- 検索語句との関連性が高い順に結果を返します(デフォルト)。newest
- 公開日が新しい順に結果を返します。
次の例では、公開日が新しい順に結果を一覧表示します。
GET https://www.googleapis.com/books/v1/volumes?q=flowers&orderBy=newest&key=yourAPIKey
特定のボリュームの取得
特定のボリュームの情報を取得するには、Volume リソース URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/books/v1/volumes/volumeId
volumeId
パス パラメータは、取得するボリュームの ID に置き換えます。ボリューム ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエスト
単一のボリュームを取得する GET
リクエストの例を次に示します。
GET https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC?key=yourAPIKey
注: ボリューム情報の取得には認証は必要ないため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要はありません。ただし、認証付きで呼び出しを行うと、購入ステータスなどのユーザー固有の情報が Volume に含まれます。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードとリクエストされた Volume リソースを返します。
200 OK { "kind": "books#volume", "id": "zyTCAlFPjgYC", "etag": "f0zKg75Mx/I", "selfLink": "https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC", "volumeInfo": { "title": "The Google story", "authors": [ "David A. Vise", "Mark Malseed" ], "publisher": "Random House Digital, Inc.", "publishedDate": "2005-11-15", "description": "\"Here is the story behind one of the most remarkable Internet successes of our time. Based on scrupulous research and extraordinary access to Google, ...", "industryIdentifiers": [ { "type": "ISBN_10", "identifier": "055380457X" }, { "type": "ISBN_13", "identifier": "9780553804577" } ], "pageCount": 207, "dimensions": { "height": "24.00 cm", "width": "16.03 cm", "thickness": "2.74 cm" }, "printType": "BOOK", "mainCategory": "Business & Economics / Entrepreneurship", "categories": [ "Browsers (Computer programs)", ... ], "averageRating": 3.5, "ratingsCount": 136, "contentVersion": "1.1.0.0.preview.2", "imageLinks": { "smallThumbnail": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api", "thumbnail": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api", "small": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=2&edge=curl&source=gbs_api", "medium": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=3&edge=curl&source=gbs_api", "large": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=4&edge=curl&source=gbs_api", "extraLarge": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=6&edge=curl&source=gbs_api" }, "language": "en", "infoLink": "https://books.google.com/books?id=zyTCAlFPjgYC&ie=ISO-8859-1&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/The_Google_story.html?id=zyTCAlFPjgYC" }, "saleInfo": { "country": "US", "saleability": "FOR_SALE", "isEbook": true, "listPrice": { "amount": 11.99, "currencyCode": "USD" }, "retailPrice": { "amount": 11.99, "currencyCode": "USD" }, "buyLink": "https://books.google.com/books?id=zyTCAlFPjgYC&ie=ISO-8859-1&buy=&source=gbs_api" }, "accessInfo": { "country": "US", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED_FOR_ACCESSIBILITY", "epub": { "isAvailable": true, "acsTokenLink": "https://books.google.com/books/download/The_Google_story-sample-epub.acsm?id=zyTCAlFPjgYC&format=epub&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api" }, "pdf": { "isAvailable": false }, "accessViewStatus": "SAMPLE" } }
アクセス情報
accessInfo
セクションは、電子書籍で利用可能な機能を特定する際に特に重要です。epub
はフローテキスト形式の電子書籍です。epub
セクションには、このタイプの電子書籍が利用可能かどうかを示す isAvailable
プロパティがあります。書籍のサンプルがある場合や、ユーザーが書籍を購入している場合、またはユーザーの地域で書籍がパブリック ドメインである場合は、ダウンロード リンクが表示されます。Google ブックスの pdf
は、電子書籍のスキャンページ バージョンを示します。利用可能かどうかやダウンロード リンクなどの詳細も同様に表示されます。スキャンしたページがこれらのデバイスで読みにくい可能性があるため、電子書籍リーダーとスマートフォンには epub
ファイルをおすすめします。accessInfo
セクションがない場合、その巻は Google 電子書籍として利用できません。
省略可能なクエリ パラメータ
特定のボリュームを取得するときに、標準のクエリ パラメータに加えて、次のクエリ パラメータを使用できます。
予測
projection
パラメータと次のいずれかの値を使用して、返される Volume フィールドの事前定義されたセットを指定できます。
full
- すべての Volume フィールドを返します。lite
- 特定のフィールドのみを返します。ボリュームのリファレンスで二重アスタリスクでマークされているフィールドの説明を参照して、どのフィールドが含まれているかを確認します。
次の例では、単一のボリュームの限定的なボリューム情報を返します。
GET https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC?projection=lite&key=yourAPIKey
書棚の操作
ユーザーの公開書棚のリストを取得する
ユーザーの公開書棚のリストを取得するには、次の形式の URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/books/v1/users/userId/bookshelves
userId パス パラメータは、ブックシェルフを取得するユーザーの ID に置き換えます。ユーザー ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエスト
以下に例を示します。
GET https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves&key=yourAPIKey
公開書棚に関する情報を取得するためにユーザーを認証する必要がないため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要はありません。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと書棚のリストで応答します。
200 OK { "kind": "books#bookshelves", "items": [ { ... }, { "kind": "books#bookshelf", "id": 3, "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3", "title": "Reading now", "description": "", "access": "PUBLIC", "updated": "2011-02-02T20:34:20.146Z", "created": "2011-02-02T20:34:20.146Z", "volumeCount": 2, "volumesLastUpdated": "2011-02-02T20:34:20.110Z" }, ... ] }
省略可能なクエリ パラメータ
ユーザーの公開書棚のリストを取得するときに、標準クエリ パラメータを使用できます。
特定の公開ブックシェルフの取得
特定のパブリック ブックシェルフを取得するには、次の形式の URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/books/v1/users/userId/bookshelves/shelf
userId パス パラメータと shelf パス パラメータは、取得するユーザーと書架を指定する ID に置き換えます。詳しくは、Google ブックス ID セクションをご覧ください。
リクエスト
以下に例を示します。
GET https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3?key=yourAPIKey
公開書棚に関する情報を取得するためにユーザーを認証する必要がないため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要はありません。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと書籍リスト リソースを返します。
200 OK { "kind": "books#bookshelf", "id": 3, "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3", "title": "Reading now", "description": "", "access": "PUBLIC", "updated": "2011-02-02T20:34:20.146Z", "created": "2011-02-02T20:34:20.146Z", "volumeCount": 2, "volumesLastUpdated": "2011-02-02T20:34:20.110Z" }
省略可能なクエリ パラメータ
特定の公開ブックシェルフを取得する際は、標準のクエリ パラメータを使用できます。
公開ブックシェルフの書籍のリストを取得する
次の形式の URI に HTTP GET
リクエストを送信すると、ユーザーの公開ブックシェルフの書籍のリストを取得できます。
https://www.googleapis.com/books/v1/user/userId/bookshelves/shelf/volumes
リクエスト
以下に例を示します。
GET https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3/volumes?key=yourAPIKey
userId パス パラメータと shelf パス パラメータは、取得するユーザーと書架を指定する ID に置き換えます。詳しくは、Google ブックス ID セクションをご覧ください。
公開書棚に関する情報を取得するためにユーザーを認証する必要がないため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要はありません。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードとユーザーの書棚のリストで応答します。
200 OK { "kind": "books#volumes", "items": [ { "kind": "books#volume", "id": "AZ5J6B1-4BoC", "etag": "kIzQA7IUObk", "selfLink": "https://www.googleapis.com/books/v1/volumes/AZ5J6B1-4BoC", "volumeInfo": { "title": "The Girl Who Kicked the Hornet's Nest", "authors": [ "Stieg Larsson" ], "publisher": "Knopf", "publishedDate": "2010-05-25", ... }, { "kind": "books#volume", "id": "UvK1Slvkz3MC", "etag": "otKmdbRgdFQ", "selfLink": "https://www.googleapis.com/books/v1/volumes/UvK1Slvkz3MC", "volumeInfo": { "title": "The Girl who Played with Fire", "authors": [ "Stieg Larsson" ], "publisher": "Knopf", "publishedDate": "2009-07-28", ... }, { "kind": "books#volume", "id": "OBM3AAAAIAAJ", "etag": "xb47kTr8HsQ", "selfLink": "https://www.googleapis.com/books/v1/volumes/OBM3AAAAIAAJ", "volumeInfo": { "title": "The Sign of Four", "authors": [ "Sir Arthur Conan Doyle" ], "publishedDate": "1890", ... } ], "totalItems": 3 }
省略可能なクエリ パラメータ
公開ブックシェルフの書籍のリストを取得する際には、標準のクエリ パラメータに加えて、次のクエリ パラメータを使用できます。
ページネーション
ボリューム リストをページ分けするには、リクエストのパラメータに次の 2 つの値を指定します。
startIndex
- コレクション内の開始位置。最初のアイテムのインデックスは 0 です。maxResults
- 返される結果の最大数。デフォルトは 10 で、最大許容値は 40 です。
[マイライブラリ] の書棚の操作
「マイ ライブラリ」のリクエストはすべて、認証されたユーザーのデータに適用されます。
書棚のリストを取得する
認証されたユーザーのすべてのブックシェルフのリストを取得するには、次の形式の URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves
リクエスト
以下に例を示します。
GET https://www.googleapis.com/books/v1/mylibrary/bookshelves?key=yourAPIKey Authorization: /* auth token here */
注: [マイ ライブラリ] の書棚のリストを取得するには、ユーザーが認証されている必要があります。そのため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要があります。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと、現在認証されているユーザーのすべての書棚のリストを返します。
200 OK { "kind": "books#bookshelves", "items": [ { "kind": "books#bookshelf", "id": 0, "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/0", "title": "Favorites", "access": "PRIVATE", "updated": "2011-04-22T04:03:15.416Z", "created": "2011-04-22T04:03:15.416Z", "volumeCount": 0, "volumesLastUpdated": "2011-04-22T04:03:17.000Z" }, { "kind": "books#bookshelf", "id": 3, "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3", "title": "Reading now", "access": "PUBLIC", "updated": "2010-11-11T19:44:22.377Z", "created": "2010-11-11T19:44:22.377Z", "volumeCount": 1, "volumesLastUpdated": "2010-11-11T19:44:22.341Z" } ] }
省略可能なクエリ パラメータ
認証済みユーザーのブックシェルフのリストを取得する場合は、標準クエリ パラメータを使用できます。
書棚にある書籍のリストを取得する
認証済みユーザーのブックシェルフにある書籍のリストを取得するには、次の形式の URI に HTTP GET
リクエストを送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes
shelf パス パラメータは、書棚の ID に置き換えます。書架 ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエスト
以下に例を示します。
GET https://www.googleapis.com/books/v1/mylibrary/bookshelves/7/volumes?key=yourAPIKey Authorization: /* auth token here */
注: [マイライブラリ] のボリュームのリストを取得するには、ユーザーが認証されている必要があります。そのため、GET
リクエストに Authorization
HTTP ヘッダーを指定する必要があります。
レスポンス
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと書棚の書籍のリストで応答します。
200 OK { "kind": "books#volumes", "items": [ { "kind": "books#volume", "id": "AZ5J6B1-4BoC", "etag": "kIzQA7IUObk", "selfLink": "https://www.googleapis.com/books/v1/volumes/AZ5J6B1-4BoC", "volumeInfo": { "title": "The Girl Who Kicked the Hornet's Nest", "authors": [ "Stieg Larsson" ], "publisher": "Knopf", "publishedDate": "2010-05-25", ... }, { "kind": "books#volume", "id": "UvK1Slvkz3MC", "etag": "otKmdbRgdFQ", "selfLink": "https://www.googleapis.com/books/v1/volumes/UvK1Slvkz3MC", "volumeInfo": { "title": "The Girl who Played with Fire", "authors": [ "Stieg Larsson" ], "publisher": "Knopf", "publishedDate": "2009-07-28", ... }, { "kind": "books#volume", "id": "OBM3AAAAIAAJ", "etag": "xb47kTr8HsQ", "selfLink": "https://www.googleapis.com/books/v1/volumes/OBM3AAAAIAAJ", "volumeInfo": { "title": "The Sign of Four", "authors": [ "Sir Arthur Conan Doyle" ], "publishedDate": "1890", ... } ], "totalItems": 3 }
省略可能なクエリ パラメータ
認証済みユーザーのブックシェルフのいずれかで書籍のリストを取得する場合は、標準のクエリ パラメータに加えて、次のクエリ パラメータを使用できます。
ページネーション
ボリューム リストをページ分けするには、リクエストのパラメータに次の 2 つの値を指定します。
startIndex
- コレクション内の開始位置。最初のアイテムのインデックスは 0 です。maxResults
- 返される結果の最大数。デフォルトは 10 です。
書籍をブックスタンドに追加する
認証済みユーザーのブックシェルフに書籍を追加するには、次の形式の URI に HTTP POST
リクエストを送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/addVolume
shelf パス パラメータは、書棚の ID に置き換えます。書架 ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエストには、次の 1 つの必須クエリ パラメータがあります。
volumeId
- ボリュームの ID。ボリューム ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエスト
以下は、[お気に入り] 本棚に「Flowers for Algernon」を追加する例です。
POST https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/addVolume?volumeId=NRWlitmahXkC&key=yourAPIKey Authorization: /* auth token here */ Content-Type: application/json Content-Length: CONTENT_LENGTH
注: ユーザーが書架を変更するには認証を受ける必要があるため、POST
リクエストに Authorization
HTTP ヘッダーを指定する必要があります。ただし、この POST
ではデータは必要ありません。
レスポンス
リクエストが成功すると、サーバーは HTTP ステータス コード 204 No Content
で応答します。
省略可能なクエリ パラメータ
認証済みユーザーのブックシェルフに書籍を追加する場合は、標準のクエリ パラメータを使用できます。
書棚から書籍を削除する
認証済みユーザーのブックシェルフから書籍を削除するには、次の形式の URI に HTTP POST
を送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/removeVolume
shelf パス パラメータは、書棚の ID に置き換えます。書架 ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエストには、次の 1 つの必須クエリ パラメータがあります。
volumeId
- ボリュームの ID。ボリューム ID の詳細については、Google ブックス ID のセクションをご覧ください。
リクエスト
以下は、「お気に入り」ブックスタンドから「Flowers for Algernon」を削除する例です。
POST https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/removeVolume?volumeId=NRWlitmahXkC&key=yourAPIKey Authorization: /* auth token here */ Content-Type: application/json Content-Length: CONTENT_LENGTH
注: ブックシェルフを変更するにはユーザーが認証されている必要があるため、POST
リクエストに Authorization
HTTP ヘッダーを指定する必要があります。ただし、この POST
ではデータは必要ありません。
レスポンス
リクエストが成功すると、サーバーは 204 No Content
ステータス コードで応答します。
省略可能なクエリ パラメータ
認証済みユーザーのブックシェルフから書籍を削除する場合は、標準のクエリ パラメータを使用できます。
書棚からすべての巻を消去する
認証済みユーザーのブックシェルフからすべての巻を削除するには、次の形式の URI に HTTP POST
を送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/clearVolumes
shelf パス パラメータは、書棚の ID に置き換えます。書架 ID の詳細については、Google ブックス ID セクションをご覧ください。
リクエスト
以下は、[お気に入り] ブックスタックを消去する例です。
POST https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/clearVolumes?key=yourAPIKey Authorization: /* auth token here */ Content-Type: application/json Content-Length: CONTENT_LENGTH
注: ユーザーが書架を変更するには認証を受ける必要があるため、POST
リクエストに Authorization
HTTP ヘッダーを指定する必要があります。ただし、この POST
ではデータは必要ありません。
レスポンス
リクエストが成功すると、サーバーは 204 No Content
ステータス コードで応答します。
省略可能なクエリ パラメータ
認証済みユーザーのブックシェルフからすべての書籍を消去する場合は、標準のクエリ パラメータを使用できます。
クエリ パラメータ リファレンス
このセクションでは、Books API で使用できるクエリ パラメータについて説明します。すべてのパラメータ値は URL エンコードする必要があります。
標準のクエリ パラメータ
すべての Books API オペレーションに適用されるクエリ パラメータは、システム パラメータに記載されています。
API 固有のクエリ パラメータ
Books API の特定のオペレーションにのみ適用されるリクエスト パラメータは、次の表にまとめられています。
パラメータ | 意味 | 注 | 適用性 |
---|---|---|---|
download |
ダウンロードの可用性によってボリュームを制限します。 |
|
|
filter |
ボリュームの種類と在庫状況で検索結果をフィルタします。 |
|
|
langRestrict |
返されるボリュームを、指定した言語でタグ付けされているものに制限します。 |
|
|
maxResults |
このリクエストで返される要素の最大数。 |
|
|
orderBy |
ボリューム検索結果の順序。 |
|
|
printType |
書籍や雑誌に限定する。 |
|
|
projection |
返されるボリューム情報をフィールドのサブセットに制限します。 |
|
|
q |
全文検索クエリ文字列。 |
|
|
startIndex |
結果リストの開始位置。 |
|
|
volumeId |
リクエストに関連付けられたボリュームを識別します。 |
|