目次
はじめに
このドキュメントは、Books API とやり取りできるアプリを作成するデベロッパーを対象としています。Google ブックスの使命は、世界中の書籍のコンテンツをデジタル化し、ウェブで見つけてもらいやすくすることです。ブックス 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 - Google ブックスが認識している各巻に付けられた一意の文字列。ボリューム ID の例は
_LettPDhwR0C
です。API を使用してボリューム ID を取得するには、ボリューム リソースを返すリクエストを行います。ボリューム ID は、id
フィールドで確認できます。 - 本棚 ID - ユーザーのライブラリ内の本棚に付与される数値。Google では、次の ID を持つすべてのユーザー用に事前定義されたセクションをいくつか提供しています。
- お気に入り: 0 件
- 購入済み: 1
- 読むまで: 2
- 今すぐ読む: 3
- 既読: 4
- 審査済み: 5
- 最近表示したアイテム: 6 件
- マイ e ブックス: 7
- おすすめの書籍: 8 ユーザーへのおすすめがない場合、この本棚は存在しません。
id
フィールドで確認できます。 - ユーザー ID - 各ユーザーに割り当てられた固有の数値です。これらの値は、他の Google サービスで使用される ID 値と同じとは限りません。現在、ユーザー ID を取得する唯一の方法は、認証されたリクエストで取得したシェルフトップ リソースの selfLink からユーザー ID を抽出することです。ユーザーは、ブックス サイトから自分のユーザー ID を取得することもできます。ユーザーは、API やブックス サイトを介して他のユーザーのユーザー ID を取得することはできません。他のユーザーは、メールなどで明示的にその情報を共有する必要があります。
Google ブックス サイトの身分証明書
ブックス 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
サイトでライブラリを表示している場合、ユーザー ID は
uid
URL パラメータで確認できます。次に例を示します。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:
: このキーワードの後に続くテキストが米国議会図書館管理番号である結果を返します。oclc:
: このキーワードの後に続くテキストがオンライン コンピュータ ライブラリ センターの番号である結果を返します。
リクエスト
以下は、Daniel Keyes の「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
並べ替え
デフォルトでは、Volume 検索リクエストは maxResults
の結果を返します。ここで、maxResults
はページ分割で使用されるパラメータ(上記)で、検索キーワードとの関連性順に並べられます。
順序を変更するには、orderBy
パラメータを次のいずれかの値に設定します。
relevance
- 検索語句の関連性の順に結果を返します(デフォルトです)。newest
- 公開されたものから最も新しいものの順に結果を返します。
次の例では、結果を公開日(新しい順)に一覧表示しています。
GET https://www.googleapis.com/books/v1/volumes?q=flowers&orderBy=newest&key=yourAPIKey
特定のボリュームを取得する
特定のボリュームの情報を取得するには、HTTP GET
リクエストをボリューム リソース URI に送信します。
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
本棚の操作
ユーザーの公開本棚のリストの取得
ユーザーの公開本棚のリストを取得するには、次の形式で HTTP GET
リクエストを URI に送信します。
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" }, ... ] }
省略可能なクエリ パラメータ
ユーザーの公開本棚のリストを取得するには、標準のクエリ パラメータを使用できます。
特定の公開本棚を取得する
特定の公開本棚を取得するには、次の形式で HTTP GET
リクエストを URI に送信します。
https://www.googleapis.com/books/v1/users/userId/bookshelves/shelf
userId と shell パスのパラメータを、ユーザーと取得する本棚を指定する 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" }
省略可能なクエリ パラメータ
特定の公開本棚を取得するときに、標準のクエリ パラメータを使用できます。
公開本棚の書籍の一覧を取得する
ユーザーの公開本棚にある巻のリストを取得するには、HTTP GET
リクエストを次の形式で URI に送信します。
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 と shell パスのパラメータを、ユーザーと取得する本棚を指定する 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 です。
[マイライブラリ] の本棚を操作する
すべての「マイライブラリ」リクエストは、認証済みユーザーのデータに適用されます。
本棚のリストの取得
認証されたユーザーの本棚の一覧を取得するには、次の形式で HTTP GET
リクエストを URI に送信します。
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" } ] }
省略可能なクエリ パラメータ
認証されたユーザーの本棚のリストを取得するには、標準のクエリ パラメータを使用できます。
自分の本棚の巻物リストを取得する
認証されたユーザーの本棚にある巻のリストを取得するには、次の形式で HTTP GET
リクエストを URI に送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes
shell パス パラメータを本棚の 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 }
省略可能なクエリ パラメータ
認証済みユーザーの本棚の 1 つにある巻のリストを取得する際には、標準のクエリ パラメータの他に、次のクエリ パラメータを使用できます。
ページネーション
ボリューム リストをページ分割するには、リクエストのパラメータに次の 2 つの値を指定します。
startIndex
- コレクション内の開始位置。最初のアイテムのインデックスは 0 です。maxResults
- 返される結果の最大件数です。デフォルトは 10 です。
本棚にボリュームを追加する
認証されたユーザーの本棚に巻を追加するには、次の形式で HTTP POST
リクエストを URI に送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/addVolume
shell パス パラメータを本棚の ID に置き換えます。本棚 ID について詳しくは、Google ブックス ID セクションをご覧ください。
このリクエストには、必須のクエリ パラメータが 1 つあります。
volumeId
- ボリュームの ID。ボリューム ID について詳しくは、Google ブックス ID セクションをご覧ください。
リクエスト
次の例では、「お気に入り」本棚に「アルジャーノンの花」を追加しています。
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
を返します。
省略可能なクエリ パラメータ
認証されたユーザーの本棚のいずれかにボリュームを追加する場合は、標準のクエリ パラメータを使用できます。
本棚から巻を削除する
認証されたユーザーの本棚から巻を削除するには、次の形式で HTTP POST
を URI に送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/removeVolume
shell パス パラメータを本棚の ID に置き換えます。本棚 ID について詳しくは、Google ブックス ID セクションをご覧ください。
このリクエストには、必須のクエリ パラメータが 1 つあります。
volumeId
- ボリュームの ID。ボリューム ID について詳しくは、Google ブックスの ID セクションをご覧ください。
リクエスト
次の例では、[Favorites] 本棚から「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
を返します。
省略可能なクエリ パラメータ
認証されたユーザーの本棚から書籍を削除する場合は、標準のクエリ パラメータを使用できます。
本棚からすべての巻を消去する
認証されたユーザーの本棚からすべての巻を削除するには、次の形式で HTTP POST
を URI に送信します。
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/clearVolumes
shell パス パラメータを本棚の 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 |
リクエストに関連付けられているボリュームを識別します。 |
|