Skip to content

OmniSell/lead-php-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Omni Lead PHP Client

A simple PHP client to use the Omni Lead API.

Requirements

  • PHP >= 5.6
  • Composer

Installation

We use HTTPPlug as the HTTP client abstraction layer. In this example, we will use Guzzle v6 as the HTTP client implementation.

lead-php-client uses Composer. The first step to use lead-php-client is to download composer:

$ curl -s http://getcomposer.org/installer | php

Then, run the following command to require the library:

$ php composer.phar require omnisell/lead-php-client php-http/guzzle6-adapter

If you want to use another HTTP client implementation, you can check here the full list of HTTP client implementations.

Getting started

Initialise the client

You first need to initialise the client with your credentials: currently simple API token authorization is enough.

<?php

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

$clientBuilder = new \Omni\Lead\LeadClientBuilder('http://localhost/');
$client = $clientBuilder->buildAuthenticatedByToken('', '', 'token', '');

Additional error information

try {
    $clientBuilder = new \Omni\Lead\LeadClientBuilder($url);
    $client = $clientBuilder->buildAuthenticatedByToken('', '', $token, '');
    $client->getLeadApi()->create($data);
} catch (\Omni\Lead\Exception\HttpException $e) {
    $body = $e->getResponse()->getBody();
    $decodedBody = json_decode($body->getContents(), true);
}

Note: if $body->getContents() is empty perform $body->rewind() before decoding json string

Lead API

// Create
$newLead = $client->getLeadApi()->create([
    'title' => 'New lead',
    'message' => 'Message',
    'contacts' => [
        [
            'firstName' => 'First contact first name',
            'lastName' => 'First contact last name',
            'emails' => [
                ['email' => 'email one'],
                ['email' => 'email two'],
            ],
        ],
        [
            'firstName' => 'Second contact first name',
            'lastName' => 'Second contact last name',
            'phones' => [
                ['phone' => 'phone one'],
                ['phone' => 'phone two'],
            ],
        ],
    ],
    'source' => 'source type of lead',
    'metas' => [
        ['key' => 'meta key 1', 'value' => 'meta value 1'],
        ['key' => 'meta key 2', 'value' => 'meta value 2'],
    ],
]);
echo $newLead['id']; // display "some-new-id"
 
// Update
$updatedLead = $client->getLeadApi()->upsert('some-new-id', ['title' => 'Updated lead']);
echo $updatedLead['title']; // display "Updated lead"

Offer API

// Get offer
$offer = $client->getOfferApi()->get('uuid-of-offer');
echo $offer['status']; // display "shared"
 
// Mark offer as completed (converted)
$offer = $client->getOfferApi()->complete('uuid-of-offer');
echo $updatedLead['status']; // display "converted"