r-baker / 3taps-php-client
此软件包已被废弃,不再维护。没有建议的替代软件包。
3taps数据共享API的客户端库(https://3taps.com)。基于Guzzle构建。
dev-master
2015-09-08 07:24 UTC
Requires
- guzzle/guzzle: ~3.7
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2020-02-21 15:54:11 UTC
README
A PHP 5.3+ client for working with the 3taps APIs.
功能
- 基于令人惊叹的 Guzzle HTTP客户端框架。
- 提供对参考、搜索和轮询API的单独客户端。
- 结果迭代器以自动处理结果分页、令牌、层和锚点。
- 使用 Composer 或下载 zip 将其包含到项目中。
- 已测试PHP 5.3、5.4 & 5.5
使用方法
使用Composer安装
composer.phar require r-baker/3taps-php-client
创建服务实例
use Rbaker\ThreeTaps\ThreeTapsService; $service = ThreeTapsService::factory(array( 'auth_token' => 'your-private-auth-token' ));
创建API客户端实例(例如参考API)
$referenceClient = $service->get('reference');
发起API请求
$categories = $referenceClient->getCategories();
API服务客户端
支持三个API(如3taps API文档中定义)的所有方法和参数。
要使用API客户端,如上面的示例所示,您必须从服务实例中实例化相关客户端实例。然后可以在客户端实例上调用API方法。
如果需要,可以将参数数组传递给API方法调用的第二个参数。PHP客户端将确保提供所有必需参数,但请务必查阅API文档以了解所有可选参数。
参考
参考API客户端支持以下方法
| 3Taps方法名称 | PHP客户端方法名称 |
|---|---|
| sources | $referenceClient->getSources() |
| category_groups | $referenceClient->getCategoryGroups() |
| categories | $referenceClient->getCategories() |
| locations | $referenceClient->getLocations() |
| location lookups | $referenceClient->locationLookup() |
示例
$referenceClient = $service->get('reference'); $data = $referenceClient->locationLookup(array( 'code'=>'USA-AL' ));
搜索
搜索API客户端支持以下方法
| 3Taps方法名称 | PHP客户端方法名称 |
|---|---|
| search | $searchClient->search() |
| count mode | $searchClient->count() |
示例
$searchClient = $service->get('search'); $iterator = $searchClient->getIterator('search', array( 'category_group' => 'JJJJ' )); $iterator->setLimit(30); // Total number of (unlimited) results matching our request echo $iterator->getNumMatches(); // grab results print_r($iterator->toArray());
轮询
轮询API客户端支持以下方法
| 3Taps方法名称 | PHP客户端方法名称 |
|---|---|
| anchor | $pollingClient->getAnchor() |
| poll | $pollingClient->poll() |
请参阅以下完整示例。
结果迭代器
结果迭代器自动实现了处理结果页所需的大部分逻辑。在3taps搜索和轮询API的情况下,页码、锚点和层级参数会被自动处理并用于后续请求。这允许你简单地设置所需的记录数,迭代器将尝试(如果需要)调用尽可能多的API调用以返回你的结果集。
完整示例
从轮询API获取锚点,并对纽约市过去3小时内发布的所有与工作相关的帖子进行轮询。
<?php require 'vendor/autoload.php'; use Rbaker\ThreeTaps\ThreeTapsService; // create service instance $service = ThreeTapsService::factory(array( 'auth_token' => 'your-private-auth-token' )); $pollingClient = $service->get('polling'); // retrieve anchor $anchor = $pollingClient->getAnchor(array( 'timestamp' => strtotime('-3 hours') )); // retrieve results $iterator = $pollingClient->getIterator('poll', array( 'category_group' => 'JJJJ', 'location.city' => 'USA-NYM-NEY', 'anchor' => $anchor['anchor'] )); // iterate! foreach($iterator as $result) { print_r($result); } // grab the anchor to use for the next poll request $nextAnchor = $iterator->getAnchor();
测试
该项目为每个API客户端包含一个基本的PHPUnit测试套件。
- 安装PHPUnit
php composer.phar install --dev - 务必将你的自己的
auth_token添加到phpunit.xml配置文件中 - 运行测试套件
./vendor/bin/phpunit