silktide/brightlocal-api

此包已废弃,不再维护。没有建议的替代包。

BrightLocal API 封装器。

0.1.5 2016-06-27 16:37 UTC

This package is auto-updated.

Last update: 2022-02-01 12:59:15 UTC


README

BrightLocal API 封装器。工作正在进行中。

Build Status Code Climate Test Coverage

实现的方法

  • 批量创建
  • 批量提交
  • 批量获取结果
  • 通过企业数据获取个人资料详细信息

创建客户端

使用客户端工厂

对于不使用依赖注入的库,此库提供了一个方便的工厂。只需使用以下方式来创建 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出现问题时或结果不良的情况下,将抛出异常。你应该预期你的应用程序会抛出异常,并优雅地处理它们。