mediumart / intercom
Intercom API [Macroable] client adapter for laravel
Installs: 54 400
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 1
Forks: 1
Open Issues: 6
pkg:composer/mediumart/intercom
Requires
- illuminate/support: ~5.0|6.*|7.*
- intercom/intercom-php: ^3.1
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/testbench: ^3.4
- phpunit/phpunit: ~5.7
- dev-master
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.3
- 0.0.2
- 0.0.1
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-dependabot/composer/erusev/parsedown-1.7.4
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-dependabot/composer/symfony/http-kernel-3.4.49
- dev-dependabot/composer/league/flysystem-1.1.4
This package is auto-updated.
Last update: 2025-10-22 01:37:02 UTC
README
Mediumart Intercom Client is macroable !
Installation
To install, first require the package via composer:
$ composer require mediumart/intercom
Next add the following to your config/app.php inside the 'providers' array:
Mediumart\Intercom\IntercomServiceProvider::class
and the facade reference inside the 'aliases' array:
'Intercom' => Mediumart\Intercom\Intercom::class
Configuration
You need to create an app with an associated access_token from your intercom.io account. You can find informations on how to do that here.
Once you got your access token, open the config/services.php in your laravel project and add a key for the intercom service like this:
'intercom' => [
'access_token' => '<your_access_token>'
]
The package will automatically pick out the token to authenticate any api request to your own intercom data.
Usage
You can resolve the intercom Client in many ways:
use Mediumart\Intercom\Client; /** * Manually resolving from the container * */ $intercom = app('intercom'); // or $intercom = app(Client::class); /** * using type hinting and laravel's automatic resolution * */ public function index(Client $intercom) { /.../ } /** * Simply leverage the facade * */ $intercomUsers = Intercom::users();
Using the instance or the facade, any resource type is mirrored as a method on the Client, that can be used to gain the corresponding resource object :
// facade $leads = Intercom::leads(); // instance $intercom = app('intercom'); $conversations = $intercom->conversations();
Using the instance approach you can also resolve the resource instance as a property of the Client:
$conversations = $intercom->conversations;
Here is the list of all the Intercom resources types :
userseventscompaniesmessagesconversationsleadsvisitorsadminstagssegmentscountsbulknotes
You can find related informations on their official documentation page and the api usage for each resource here.
In addition, you can also set the token in a fluent way, after the Client has been resolved, using the setToken method:
$intercom->setToken($token)->users->getUser($id);
Defining Macros
To create a macro function, you can use the macro method on either the facade or the instance, this method accepts a name as its first argument, and a callable as its second.
// facade Intercom::macro('usersEmails', function () { return // your logic here ... }); // instance $intercom->macro('usersEmails', function () use ($intercom) { return // your logic here ... });
Your macro can now be called as a regular method on intercom facade or instance
// facade $userEmails = Intercom::usersEmails(); // instance $userEmails = $intercom->usersEmails();
License
Mediumart Intercom is an open-sourced software licensed under the MIT license.