Google Apps ScriptでGoogle Books APIの検索結果を取得したくて調べました。
URLの例(ブラウザで開くとJSONが返ってくる)
https://www.googleapis.com/books/v1/volumes?q=intitle:API&country=JP
コード.gs内では、&country=JPを付けないとエラーになる。
コード.gsfunction getBooksWithParams() { var url = 'https://www.googleapis.com/books/v1/volumes?q=intitle:API&country=JP&langRestrict=ja&maxResults=40&orderBy=newest'; var json = UrlFetchApp.fetch(url); Logger.log(json) } | 意訳この機能がやること Google Books APIで検索する 結果を取得して ログに出す |
パラメータについて
intitle:API 「タイトル」
&country=JP これを設定しないとエラーが出る JP以外にはUSなど
&langRestrict=ja 「日本語」
&maxResults=40 「結果の数」0〜40
&orderBy=newest 「並び替え」newest or relevance
その他のパラメータ
https://developers.google.com/books/docs/v1/using#api_params
補足1
&country=JPを付けずにUrlFetchApp.fetch(url)に渡すとこのようなエラーが出た。
https://www.googleapis.com/books/v1/volumes?q=API のリクエストに失敗しました(エラー: 403)。サーバー応答の一部: { "error": { "errors": [ { "domain": "global", "reason": "unknownLocation", "message": "Cannot determine user location for geogra...(
これをreasonの部分を切り取ってググってみると
"reason": "unknownLocation", "message": "Cannot determine user location for
それらしきproductforumsのリンクが一番上にある(一発で見つかるの助かる)
https://productforums.google.com/forum/#!topic/books-api/cK8VJUhRl9w
そのリンクを開いてみると
&country=
を追加してやるとうまくいくという回答を参考にしました。
補足2
langRestrictのlanguage codeがどんなコードなのか記載がないので調べてみると、wikipediaにISO 639-1コード一覧というのを見つけた。
日本語はja
英語ならen
参考
Google Books APIs
Getting Started
https://developers.google.com/books/docs/v1/getting_started?hl=ja
Using the API
https://developers.google.com/books/docs/v1/using?hl=ja
Volume: list
https://developers.google.com/books/docs/v1/reference/volumes/list?hl=ja
ブックス検索オプション
https://books.google.co.jp/advanced_book_search?hl=ja
productforums
https://productforums.google.com/forum/#!topic/books-api/cK8VJUhRl9w
ISO 639-1コード一覧
Google Books APIs
Getting Started
https://developers.google.com/books/docs/v1/getting_started?hl=ja
Using the API
https://developers.google.com/books/docs/v1/using?hl=ja
Volume: list
https://developers.google.com/books/docs/v1/reference/volumes/list?hl=ja
ブックス検索オプション
https://books.google.co.jp/advanced_book_search?hl=ja
productforums
https://productforums.google.com/forum/#!topic/books-api/cK8VJUhRl9w
ISO 639-1コード一覧