API の使用

目次

はじめに

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

  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 が使用されます。

  • 巻 ID - Google ブックスが認識している各巻に割り当てられる一意の文字列。ボリューム ID の例は _LettPDhwR0C です。API を使用してボリューム ID を取得するには、Volume リソースを返すリクエストを送信します。ボリューム ID は id フィールドにあります。
  • ブックセクション ID - ユーザーのライブラリ内のブックセクションに割り当てられた数値。Google は、すべてのユーザーに次の ID のいくつかの定義済みセクションを提供しています。
    • お気に入り: 0
    • 購入済み: 1
    • 読み取り: 2
    • 読み上げ中: 3
    • 読了済み: 4
    • 審査済み: 5
    • 最近表示したコンテンツ: 6
    • マイ eBooks: 7
    • おすすめの本: 8 ユーザーにおすすめする書籍がない場合、このセクションは存在しません。
    カスタム セクションの ID は 1,000 より大きい値です。書棚 ID はユーザーごとに一意です。つまり、2 人のユーザーが同じ ID の書棚を持ち、異なる書棚を参照できます。API を使用して Bookshelf リソースを返すリクエストを実行することで、Bookshelf ID を取得できます。Bookshelf ID は 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 ダウンロードの可用性によってボリュームを制限します。
  • 現在サポートされている値は epub のみです。
  • ダウンロードするには購入が必要になる場合があります。
filter ボリュームの種類と在庫状況で検索結果をフィルタします。
  • サポートされているフィルタは次のとおりです。
    • filter=partial - テキストの一部をプレビューできる巻に結果を制限します。
    • filter=full - テキストがすべて表示されている巻に結果を制限します。
    • filter=free-ebooks - 結果を無料の Google eBook に制限します。
    • 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: このキーワードの後に続くテキストが Library of Congress Control Number である結果を返します。
    • oclc: このキーワードの後にオンライン コンピュータ ライブラリ センター番号が続く結果を返します。
startIndex 結果リストの開始位置。
  • コレクション内のすべてのアイテムをリクエストする場合は、リクエストのパラメータで startIndexmaxResults を指定して、結果をページ分けできます。
  • 最初のアイテムのインデックスは 0 です。
volumeId リクエストに関連付けられたボリュームを識別します。
  • 書棚に追加または削除する書籍を指定します。