silktide / brightlocal-api
此包已废弃,不再维护。没有建议的替代包。
BrightLocal API 封装器。
0.1.5
2016-06-27 16:37 UTC
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3.2
- phpunit/phpunit: ^5.4
README
BrightLocal API 封装器。工作正在进行中。
实现的方法
- 批量创建
- 批量提交
- 批量获取结果
- 通过企业数据获取个人资料详细信息
创建客户端
使用客户端工厂
对于不使用依赖注入的库,此库提供了一个方便的工厂。只需使用以下方式来创建 API 客户端
$clientFactory = new \Silktide\BrightLocalApi\ClientFactory();
$client = $clientFactory->createClient([YOUR API KEY], [YOUR API SECRET]);
使用依赖注入
如果你不知道这是什么,请忽略这部分。
如果你正在使用 syringe ,则包含了一个方便的配置。如果你想在你的 DI 容器中设置它,请查看 ClientFactory 类以了解如何创建客户端及其依赖项。
批量操作
创建批量操作
$batch = $client->createNewBatch();
提交批量操作以进行处理
$batch->commit();
获取结果
获取批量结果。注意 - 由于 BrightLocal 收集结果需要时间,你可能更喜欢轮询结果(见下文)。
$results = $batch->getResults();
轮询结果
由于 BrightLocal 完成批量操作可能需要时间,因此提供了一个方便的方法来轮询结果,直到结果可用。这将挂起脚本的执行,直到 BrightLocal 的结果准备就绪。默认情况下,结果将每 5 秒检查一次,最多检查 20 次(可以通过传递值到此方法来覆盖)。如果在尝试达到最大次数之前批量操作尚未完成,将抛出异常。
$results = $batch->pollForResults();
本地目录
通过企业数据获取个人资料详细信息
$client->fetchProfileDetailsByBusinessData($batch, [
'business-names' => 'Silktide',
'country' => 'GBR',
'city' => 'Derby',
'postcode' => 'DE248HR',
'local-directory' => 'google'
]);
该目录应在 BrightLocal 的附录 中列出。国家应为 3 个字母的 ISO
目录配置助手
为了帮助与 BrightLocal API 通信,包括了一个助手,可以帮助您进行集成。
了解哪些目录可以使用
此函数返回 BrightLocal 在给定国家支持的目录 ID 数组。
$helper = Silktide\BrightLocalApi\Data\DirectoryConfigHelper(new Silktide\BrightLocalApi\Data\DataLoader());
$helper->getDirectoriesForCountry('GBR');
获取目录的“友好名称”
BrightLocal的API包含了所有他们支持的目录的引用,但所有名称都是小写,并去除了标点符号(例如:2findlocal,canadaspace)。此函数返回给定目录的“友好”名称。
$helper = Silktide\BrightLocalApi\Data\DirectoryConfigHelper(new Silktide\BrightLocalApi\Data\DataLoader());
$helper->getLabelForDirectory('192'); // returns '192.com'
完整示例
获取企业资料
// Create client (using factory)
$clientFactory = new \Silktide\BrightLocalApi\ClientFactory();
$client = $clientFactory->createClient([YOUR API KEY], [YOUR API SECRET]);
// Directories to fetch
$directories = [
'google',
'facebook',
'yell',
'scoot'
];
//Create batch
$batch = $client->createNewBatch();
// Add directory checks for each local directory
foreach ($directories as $directory) {
$client->fetchProfileDetailsByBusinessData($batch, [
'business-names' => 'Silktide\nSilktide Ltd',
'country' => 'GBR',
'city' => 'Derby',
'postcode' => 'DE248HR',
'local-directory' => $directory
]);
}
// Commit the batch for processing
$batch->commit();
// Poll for results
$results = $batch->pollForResults();
一般
错误处理
在API出现问题时或结果不良的情况下,将抛出异常。你应该预期你的应用程序会抛出异常,并优雅地处理它们。