API を使用する

目次

はじめに

このドキュメントは、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 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。

  1. アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。登録すると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google API Console で Books API を有効にします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
  4. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  5. ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
  6. アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
  7. 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 キーを取得するには:

  1. API コンソールで [認証情報] ページを開きます。
  2. この 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 は 1,000 を超えています。本棚 ID は特定のユーザーごとに一意です。つまり、2 人のユーザーが同じ ID で異なる本棚を参照する本棚を持つことができます。この API を使用して、Bookshell リソースを返すリクエストを行って本棚 ID を取得できます。本棚 ID は 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

userIdshell パスのパラメータを、ユーザーと取得する本棚を指定する 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

userIdshell パスのパラメータを、ユーザーと取得する本棚を指定する 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 ダウンロードの可用性によってボリュームを制限します。
  • 現在サポートされている値は epub のみです。
  • ダウンロードするには購入が必要な場合があります。
filter 検索結果をボリュームの種類と可用性でフィルタします。
  • サポートされているフィルタは次のとおりです。
    • filter=partial - テキストの少なくとも一部がプレビューできるボリュームに結果を制限します。
    • filter=full - すべてのテキストを表示できるボリュームに結果を制限します。
    • filter=free-ebooks - 検索結果を無料の Google 電子書籍に限定します。
    • filter=paid-ebooks - 検索結果を、購入価格が設定されている Google 電子書籍に限定します。
    • filter=ebooks - 検索結果を、有料または無料の Google 電子書籍に限定します。電子書籍以外の例としては、限定プレビューで販売はされていない出版社のコンテンツ、雑誌などがあります。

 

langRestrict 返されるボリュームを、指定した言語でタグ付けされたボリュームに制限します。
  • 検索結果を特定言語のものに限定するには、langRestrict に 2 文字の ISO-639-1 コード(「en」や「fr」など)を指定します。
maxResults このリクエストで返される要素の最大数。
  • コレクション内のすべてのアイテムに対するリクエストで、リクエストのパラメータに startIndexmaxResults を指定することで、結果をページ分けできます。
  • デフォルト: maxResults=10
  • 指定できる最大値: maxResults=40.
orderBy

ボリューム検索結果の順序。

  • デフォルトでは、検索リクエストは maxResults の結果を返します。ここで、maxResults はページ分割で使用されるパラメータで、関連性の高い順に並べられます。
  • 順序を変更するには、orderBy パラメータを次のいずれかの値に設定します。
    • orderBy=relevance - 最も関連性が高いものから最も低いものの順に検索結果を返します(これがデフォルトです)。
    • orderBy=newest - 最新の公開日から最も古い日付の順に検索結果を返します。
printType 書籍や雑誌に限定
  • 指定できる値は次のとおりです。
    • printType=all - すべてのボリューム コンテンツ タイプを返します(制限なし)。グローバル ウィンドウはデフォルト。
    • printType=books - 書籍のみを返します。
    • printType=magazines - 雑誌のみを返します。
projection フィールドのサブセットに返されるボリューム情報を制限します。
  • サポートされているプロジェクションは次のとおりです。
    • projection=full - すべてのボリューム メタデータが含まれます(デフォルト)。
    • projection=lite - ボリュームのサブジェクトとアクセス メタデータのみが含まれます。
q 全文クエリ文字列。
  • クエリを作成するときは、q=term1+term2_term3 の形式で検索キーワードを「+」で区切ってリストします。(スペースで区切ることもできますが、他のクエリ パラメータ値と同様に、スペースを URL エンコードする必要があります)。API は、すべての検索キーワードに一致するすべてのエントリを返します(キーワード間で AND を使用するなど)。Google のウェブ検索と同様に、API は部分文字列ではなく、完全な単語(および同じ語幹を持つ関連単語)を検索します。
  • 完全に一致するフレーズを検索するには、フレーズを引用符で囲みます(q="exact phrase")。
  • 指定したキーワードに一致するエントリを除外するには、q=-term の形式を使用します。
  • 検索キーワードでは大文字と小文字が区別されません。
  • 例: 完全一致のフレーズ "Elizabeth Bennet" と単語 "Darcy" を含み、かつ "Austen" という単語を含まないすべてのエントリを検索するには、次のクエリ パラメータ値を使用します。
    q="Elizabeth+Bennet"+Darcy-Austen
  • 特定のフィールドで検索する検索キーワードには、次のような特殊な(大文字と小文字を区別する)キーワードを指定できます。
    • intitle: このキーワードの後に続くテキストがタイトルに含まれている結果を返します。
    • inauthor: このキーワードに続くテキストが作成者の中に見つかった結果を返します。
    • inpublisher: このキーワードに続くテキストがパブリッシャーで見つかった結果を返します。
    • subject: このキーワードの後に続くテキストが、巻のカテゴリリストに含まれている結果を返します。
    • isbn: このキーワードの後に続くテキストが ISBN 番号の結果を返します。
    • lccn: このキーワードの後に続くテキストが米国議会図書館管理番号である結果を返します。
    • oclc: このキーワードの後に続くテキストがオンライン コンピュータ ライブラリ センターの番号である結果を返します。
startIndex 結果のリストを開始するコレクション内の位置。
  • コレクション内のすべてのアイテムに対するリクエストで、リクエストのパラメータに startIndexmaxResults を指定することで、結果をページ分けできます。
  • 最初のアイテムのインデックスは 0 です。
volumeId リクエストに関連付けられているボリュームを識別します。
  • 本棚に追加する、または本棚から削除するボリュームを指定します。