frankkessler/incontact-laravel-oauth2-rest

An inContact REST api wrapper utilizing oAuth2

v0.2.4 2016-09-23 02:50 UTC

README

Travis CI Build Status Coverage Status StyleCI Latest Stable Version

INSTALLATION

To install this package, add the following to your composer.json file

frankkessler/incontact-laravel-oauth2-rest: "0.2.*"

LARAVEL 5 SPECIFIC INSTALLATION TASKS

Add the following to your config/app.php file in the providers array

Frankkessler\Incontact\Providers\IncontactLaravelServiceProvider::class,

Add the following to your config/app.php file in the aliases array

'Incontact'    => Frankkessler\Incontact\Facades\Incontact::class,

Run the following command to pull the project config file and database migration into your project

php artisan vendor:publish

Run the migration

php artisan migrate

##OPTIONAL INSTALLATION

Logging is enabled by default if using Laravel. If not, add the following to the $config parameter when initializing the Incontact class. (This class must implement the Psr\Log\LoggerInterface interface.)

'incontact.logger' => $class_or_class_name

#TOKEN SETUP

Currently, this package only supports the username/password flow for oauth2.

To get started, you'll have to setup an Application in Incontact.

  1. Navigate to Manage -> API Applications
  2. Click "Create API Application"
  3. Select "Register Internal Application"
  4. Fill out the form keeping in mind that your OAUTH_CONSUMER_TOKEN will be [APPLICATION_NAME]@[VENDOR_NAME]
  5. Save and find your business unit if which will be your OAUTH_CONSUMER_SECRET.

Now that you have your Consumer Token and Consumer Secret, add them to your .env file:

INCONTACT_OAUTH_DOMAIN=api.incontact.com
INCONTACT_OAUTH_CONSUMER_TOKEN=[APPLICATION_NAME]@[VENDOR_NAME]
INCONTACT_OAUTH_CONSUMER_SECRET=BUSINESS_UNIT_NUMBER
INCONTACT_OAUTH_SCOPES=RealTimeApi AdminApi ReportingApi
INCONTACT_OAUTH_USERNAME=YOUR_INCONTACT_USERNAME
INCONTACT_OAUTH_PASSWORD=YOUR_INCONTACT_PASSWORD

EXAMPLES

AdminApi

Get Agents

$incontact = new \Frankkessler\Incontact\Incontact();

$result = $incontact->AdminApi()->agents();

foreach($result['agents'] as $record) {
    $agentId =  $record['AgentId'];
}

ReportingApi

Get Call by Contact Id

$incontact = new \Frankkessler\Incontact\Incontact();

$result = $incontact->ReportingApi()->contact('9999999999');
                                      
foreach($result as $record) {
    $contactId = $record['contactId'];
}