bluora / php-google-books-api
提供访问Google Books API的接口
dev-master
2017-08-18 01:32 UTC
Requires
- php: >=5.5.0
- bluora/bluora-shared-api-traits: dev-master
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpmd/phpmd: @stable
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-09-15 02:57:30 UTC
README
一个易于使用的PHP客户端,用于使用Google Books API。
要求
安装
$ composer require bluora/php-google-books-api dev-master
您也可以将此包添加到您的composer.json
文件中
"bluora/php-google-books-api": "dev-master"
然后运行composer update
将包下载到您的vendor目录。
配置
有几种方法可以设置Google API服务账户密钥。
使用您的环境文件,使用配置文件中的putenv
,或在GoogleBookApi类实例化时使用。
.env文件
GOOGLE_BOOKS_API_KEY="xxx...xxx"
PHP配置
putenv('GOOGLE_BOOKS_API_KEY=xxx...xxx'));
$lookup = new GoogleBooksApi(['key' => 'xxx...xxx']);
用法
基本
让我们使用其ISBN获取《谷歌故事》。
注意:如果查询找不到记录,返回值将为null。
$book = (new GoogleBooksApi()) ->isbn('9780553804577')->first();
返回一个值关联数组。根据主机IP地址的地理位置,书数据的内容可能不同。
此包实现了Iterator和Countable接口,因此它提供了计数和通过foreach将其作为数组处理的能力。
注意:在返回结果之前,count
将加载结果的第一个page
。
$books = (new GoogleBooksApi()) ->search('google'); echo 'Total books in result: ' . count($books) . '; Total pages: '.$lookup->totalPages();
输出将如下所示
Total books in result: 511; Total pages: 52
因为它实现了Interator
接口,调用foreach
将在到达当前结果的末尾时加载新的书籍。
如果您只想加载一定数量的书籍,则使用limit
仅加载更多书籍页面。
注意:设置限制将自动设置每页记录数,最多为API的最大值40。超过40后,它将在后续的API调用中请求剩余的值。
$books = (new GoogleBooksApi()) ->search('google') ->limit(12); echo 'Total: '.count($lookup)."; Pages: ".$lookup->totalPages()."\n"; foreach ($lookup as $key => $book) { echo $key." - ".$book['title']."\n"; }
输出将如下所示
Total: 511; Pages: 43
0 - The Google Legacy
1 - Google
2 - The Google Model
3 - Google Chrome
4 - Using Google AdWords and AdSense
5 - Making Google Adsense Work for the 9 to 5 Professional - Tips and Strategies to Earn More from Google Adsense
6 - Google Search & Rescue For Dummies
7 - Using Google and Google Tools in the Classroom, Grades 5 & Up
8 - Programming Google App Engine
9 - Python for Google App Engine
10 - Google and the Law
11 - Planet Google
您可以通过调用all
来获取完整的结果数组。
$books = (new GoogleBooksApi()) ->search('google') ->limit(12) ->all(); foreach ($books as $key => $book) { echo $key." - ".$book['title']."\n"; }