This is a wrapper for the Hubspot/hubspot-api-php package and gives the user a Service Container binding and facade of the HubSpot\Discovery\Discovery
class.
composer require rossjcooper/laravel-hubspot
- Get a HubSpot API Key from the Intergrations page of your HubSpot account.
- Laravel 5.4 or earlier, in your
config/app.php
file:- Add
Rossjcooper\LaravelHubSpot\HubSpotServiceProvider::class
to your providers array. - Add
'HubSpot' => Rossjcooper\LaravelHubSpot\Facades\HubSpot::class
to your aliases array.
- Add
php artisan vendor:publish --provider="Rossjcooper\LaravelHubSpot\HubSpotServiceProvider" --tag="config"
will create aconfig/hubspot.php
file.- Add your HubSpot API key and private app access token into the
.env
file:HUBSPOT_ACCESS_TOKEN=yourApiKey
- If you use the private app access token, you should alo add
HUBSPOT_USE_OAUTH2=true
to your.env
file
You can use either the facade or inject the HubSpot class as a dependency:
// Echo all contacts first and last names
$response = HubSpot::crm()->contacts()->basicApi()->getPage();
foreach ($response->getResults() as $contact) {
echo sprintf(
"Contact name is %s %s." . PHP_EOL,
$contact->getProperties()['firstname'],
$contact->getProperties()['lastname']
);
}
Route::get('/', function (HubSpot\Discovery\Discovery $hubspot) {
$response = $hubspot->crm()->contacts()->basicApi()->getPage();
foreach ($response->getResults() as $contact) {
echo sprintf(
"Contact name is %s %s." . PHP_EOL,
$contact->getProperties()['firstname'],
$contact->getProperties()['lastname']
);
}
});
// Create a new contact
$contactInput = new \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectInputForCreate();
$contactInput->setProperties([
'email' => 'example@example.com'
]);
$contact = $hubspot->crm()->contacts()->basicApi()->create($contactInput);
For more info on using the actual API see the main repo Hubspot/hubspot-api-php
We're using the brilliant Orchestra Testbench to run unit tests in a Laravel based environment. If you wish to run tests be sure to have a HubSpot API key inside your .env
file and run composer run test
Current unit test access the HubSpot API and expect to see the demo contacts/leads that HubSpot provides to its developer accounts.
Please only report issues relating to the Laravel side of things here, main API issues should be reported here