PHP HubSpot API v3 SDK(Client) files and sample apps
composer require hubspot/api-client
Sample Applications can be found in sample-apps folder
$hubSpot = \HubSpot\Factory::createWithApiKey('api-key');
$hubSpot = \HubSpot\Factory::createWithAccessToken('access-token');
$client = new \GuzzleHttp\Client([...]);
$hubSpot = \HubSpot\Factory::createWithAccessToken('access-token', $client);
It provides an ability to turn on retry for failed requests with statuses 429 or 500. Please note that Apps using OAuth are only subject to a limit of 100 requests every 10 seconds.
$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);
vendor/bin/phpspec run
vendor/bin/phpunit ./tests