swithfr/api-client

Hubspot API客户端

5.0.2 2022-01-13 12:17 UTC

README

PHP HubSpot API v3 SDK(客户端)文件

安装

composer require hubspot/api-client

示例应用

请查看我们的示例应用

快速入门

使用HubSpot API密钥实例化API客户端,请使用工厂

$hubSpot = \HubSpot\Factory::createWithApiKey('api-key');

或使用OAuth2访问令牌

$hubSpot = \HubSpot\Factory::createWithAccessToken('access-token');

还可以将自定义客户端传递给工厂

$client = new \GuzzleHttp\Client([...]);

$hubSpot = \HubSpot\Factory::createWithAccessToken('access-token', $client);

API客户端带有中间件,用于实现速率和并发限制。

它提供了在状态为429或500的失败请求上启用重试的能力。请注意,使用OAuth的应用程序每10秒只能有100个请求的限制。

$handlerStack = \GuzzleHttp\HandlerStack::create();
$handlerStack->push(
    \HubSpot\RetryMiddlewareFactory::createRateLimitMiddleware(
        \HubSpot\Delay::getConstantDelayFunction()
    )
);
        
$handlerStack->push(
    \HubSpot\RetryMiddlewareFactory::createInternalErrorsMiddleware(
        \HubSpot\Delay::getExponentialDelayFunction(2)
    )
);

$client = new \GuzzleHttp\Client(['handler' => $handlerStack]);

$hubSpot = \HubSpot\Factory::createWithAccessToken('access-token', $client);

获取联系人页面

$response = $hubSpot->crm()->contacts()->basicApi()->getPage();

搜索联系人

$filter = new \HubSpot\Client\Crm\Contacts\Model\Filter();
$filter
    ->setOperator('EQ')
    ->setPropertyName('email')
    ->setValue($search);

$filterGroup = new \HubSpot\Client\Crm\Contacts\Model\FilterGroup();
$filterGroup->setFilters([$filter]);

$searchRequest = new \HubSpot\Client\Crm\Contacts\Model\PublicObjectSearchRequest();
$searchRequest->setFilterGroups([$filterGroup]);

// @var CollectionResponseWithTotalSimplePublicObject $contactsPage
$contactsPage = $hubSpot->crm()->contacts()->searchApi()->doSearch($searchRequest);

创建联系人

$contactInput = new \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectInput();
$contactInput->setProperties($_POST);

$contact = $hubSpot->crm()->contacts()->basicApi()->create($contactInput);

更新联系人

$newProperties = new \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectInput();
$newProperties->setProperties($_POST);

$hubSpot->crm()->contacts()->basicApi()->update($contactId, $newProperties);

获取自定义对象页面

$hubSpot->crm()->objects()->basicApi()->getPage(HubSpot\Crm\ObjectType::CONTACTS)

文件上传

$file = new \SplFileObject(“file path”);
$response = $hubSpot->files()->filesApi()->upload($file, null, ‘/’, null, null, json_encode([
    “access” => “PRIVATE”,
    “ttl” => “P2W”,
    “overwrite” => false,
    “duplicateValidationStrategy” => “NONE”,
    “duplicateValidationScope” => “EXACT_FOLDER”
]) );

贡献

运行规范测试

vendor/bin/phpspec run

运行单元测试

vendor/bin/phpunit ./tests