Skip to content
 
 

Latest commit

 

History

326 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HubSpot PHP API client

Version Total Downloads License CodeClimate Test Coverage Build Status

Hubspot API client. The sequel to my perfectly functional wrapper of HubSpot/haPihP. client. However, this is a complete re-write and includes some of the new COS/v2 endpoints.

ANNOUNCEMENT!

RC-1 just released! Please note the breaking changes in the CHANGELOG

TL;DR Most importantly:

  • Package name changed from fungku/hubspot-php to ryanwinchester/hubspot-php
  • Namespace changed from Fungku\HubSpot to SevenShores\Hubspot
  • HubSpotService class renamed to Factory
  • HubSpotService::make() is now Factory::create()
  • HubSpotService::makeWithToken() is now Factory::createWithToken()

Setup

Composer:

composer require "ryanwinchester/hubspot-php:1.0.*@dev"

Quickstart

Examples Using Factory

All following examples assume this step.

$hubspot = SevenShores\Hubspot\Factory::create('api-key');

// OR instantiate by passing a configuration array.
// The only required value is the 'key'

$hubspot = new SevenShores\Hubspot\Factory([
  'key'      => 'demo',
  'oauth'    => false, // default
  'base_url' => 'https://api.hubapi.com' // default
]);

Note: The Client class checks for a HUBSPOT_SECRET environment variable if you don't include an api key or oauth token during instantiation.

Note: You can prevent any error handling provided by this package by passing following options into client creation routine: (applies also to Factory::create() and Factory::createWithToken())

$hubspot = new SevenShores\Hubspot\Factory([
  'key'      => 'demo',
  'oauth'    => false, // default
  'base_url' => 'https://api.hubapi.com' // default
],
[
  'http_errors' = true // pass any Guzzle related option to any request, e.g. throw no exceptions
],
false // return Guzzle Response object for any ->request(*) call
);

By setting http_errors to true, you will not receive any exceptions at all, but pure responses. For possible options, see http://docs.guzzlephp.org/en/latest/request-options.html.

Get a single contact:

$contact = $hubspot->contacts()->getByEmail("test@hubspot.com");

echo $contact->properties->email->value;

Paginate through all contacts:

// Get an array of 10 contacts
// getting only the firstname and lastname properties
// and set the offset to 123456
$response = $hubspot->contacts()->all([
    'count'     => 10,
    'property'  => ['firstname', 'lastname'],
    'vidOffset' => 123456,
]);

Working with the data is easy!

foreach ($response->contacts as $contact) {
    echo sprintf(
        "Contact name is %s %s." . PHP_EOL,
        $contact->properties->firstname->value,
        $contact->properties->lastname->value
    );
}

// Info for pagination
echo $response->{'has-more'};
echo $response->{'vid-offset'};

or if you prefer to use array access?

foreach ($response['contacts'] as $contact) {
    echo sprintf(
        "Contact name is %s %s." . PHP_EOL,
        $contact['properties']['firstname']['value'],
        $contact['properties']['lastname']['value']
    );
}

// Info for pagination
echo $response['has-more'];
echo $response['vid-offset'];

Now with response methods implementing PSR-7 ResponseInterface

$response->getStatusCode()   // 200;
$response->getReasonPhrase() // 'OK';
// etc...

Example Without Factory

<?php

require 'vendor/autoload.php';

use SevenShores\Hubspot\Http\Client;
use SevenShores\Hubspot\Resources\Contacts;

$client = new Client(['key' => 'demo']);

$contacts = new Contacts($client);

$response = $contacts->all();

foreach ($response->contacts as $contact) {
    //
}

Status

If you see something not planned, that you want, make an issue and there's a good chance I will add it.

  • Blogs (COS) 🆕
  • Blog Authors (COS) 🆕
  • Blog Posts (COS) 🆕
  • Blog Topics (COS) 🆕
  • Companies 🆕
  • Company Properties 🆕
  • Contacts
  • Contact Lists
  • Contact Properties
  • Deals 🆕
  • Email 🆕
  • Email Events 🆕
  • Engagements
  • Events (Enterprise) 🆕
  • Files (COS) 🆕
  • Forms
  • Keywords
  • Owners
  • Page Publishing (COS) 🆕
  • Social Media
  • Templates (COS) 🆕
  • Timeline 🆕
  • Workflows

About

HubSpot PHP API Client

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages