teamgate/php-api-sdk

Teamgate API SDK for PHP

v1.0 2019-07-03 12:31 UTC

This package is not auto-updated.

Last update: 2024-03-16 16:42:11 UTC


README

A cloud-based intelligent Sales CRM for small and mid-size teams. With its simple yet playful interface, Teamgate is a great sales stack for today’s business. See https://www.teamgate.com for details. This is the official Teamgate API wrapper-client for PHP based apps, distributed by Teamgate Ltd. freely under the MIT licence.

Prerequisites

You will need to make sure your server meets the following requirements:

  • PHP >= 5.5
  • The PHP cURL extension

Getting Started

You can install via composer or by downloading the source. Teamgate API client utilizes Composer to manage its dependencies. So, before using Teamgate API client, make sure you have Composer installed on your machine.

Install Composer In Your Project

Run this in your command line:

curl -sS https://getcomposer.org/installer | php

Installation

To install run:

composer require teamgate/php-api-sdk:dev-master

Autoloading

For libraries that specify autoload information, Composer generates a vendor/autoload.php file. You can simply include this file and you will get autoloading for free.

require __DIR__ . '/vendor/autoload.php';

Basic Usage

Here's a quick example that will list some deals from your Teamgate account:

require __DIR__ . '/vendor/autoload.php';

$api = new \Teamgate\API([
    'apiKey' => '_YOUR_ACCOUNT_API_KEY_', // located at account settings -> additional features -> external apps
    'authToken' => '_YOUR_PERSONAL_AUTH_TOKEN_' // located at user settings -> preferences
]);

$result = $api->deals->get([
        'offset' => 0, 
        'limit' => 10
    ]
);
var_dump($result);

Lead management is an important part of any sales process. Create a new lead automatically whenever a visitor fills out a form on your site:

require __DIR__ . '/vendor/autoload.php';

$api = new \Teamgate\API([
    'apiKey' => '_YOUR_ACCOUNT_API_KEY_', // located at account settings -> additional features -> external apps
    'authToken' => '_YOUR_PERSONAL_AUTH_TOKEN_' // located at user settings -> preferences
]);

$result = $api->leads->create(
  [
    'title' => 'The Company Name'
  ]
);
var_dump($result);

Error Handling

When you instantiate a client or make any request via service objects, exceptions can be raised for multiple of reasons e.g. a server error, an authentication error, an invalid params and etc.

Below shows how to properly handle exceptions:

require __DIR__ . '/vendor/autoload.php';

try 
{
  $api = new \Teamgate\API([
      'apiKey' => '_YOUR_ACCOUNT_API_KEY_', // located at account settings -> additional features -> external apps
      'authToken' => '_YOUR_PERSONAL_AUTH_TOKEN_' // located at user settings -> preferences
  ]);
  $result = $api->leads->create(
    [
      'title' => 'The Company Name'
    ]
  ));
  var_dump($result);
} 
catch (Teamgate\Exception\ValidationException $e) 
{
  /* Invalid client configuration */
} 
catch (Teamgate\Exception\TransportException $e) 
{
  var_dump($e->getCode()); // HTTP Status Code
  var_dump($e->output); // Teamgate API Output
}
catch (Teamgate\Exception\ResponseException $e) 
{
  /* Invalid query parameters or etc. */
}
catch (Exception $e)
{
  /* Other kind of exception */
}

Advanced Usage

For example retrieve all companies from your Teamgate account and change their logos by website domain through Clearbit API:

require __DIR__ . '/vendor/autoload.php';

$api = new \Teamgate\API([
    'apiKey' => '_YOUR_ACCOUNT_API_KEY_', // located at account settings -> additional features -> external apps
    'authToken' => '_YOUR_PERSONAL_AUTH_TOKEN_' // located at user settings -> preferences
]);

$result = $api->companies->get([
        'offset' => 0, 
        'limit' => 10
    ]
);

foreach($result as $company) {
    if (!empty($company->data['urls']) && !empty($company->data['urls'][0] && !empty($company->data['urls'][0]['value']))
    {
        list($domain) = parse_url($company->data['urls'][0]['value'], PHP_URL_HOST);
        $logo = file_get_contents('https://logo.clearbit.com/' . $domain);
        if ($logo) {
            $company->changeLogo(
                [
                    'size' => strlen($logo),
                    'content' => base64_encode($logo)
                ]
            );
        }
    }
}

var_dump($result);

Documentation

The documentation for the Teamgate API is located at http://docs.teamgate.com/reference/

Getting Help

If you need help installing or using the library, please contact Teamgate Support at support@teamgate.com. If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!