mediumart / intercom
Intercom API [Macroable] client adapter for laravel
Installs: 52 270
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 1
Open Issues: 6
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: 2024-10-21 23:02:55 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 :
users
events
companies
messages
conversations
leads
visitors
admins
tags
segments
counts
bulk
notes
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.