Download the PHP package intercom/intercom-php without Composer
On this page you can find all versions of the php package intercom/intercom-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download intercom/intercom-php
More information about intercom/intercom-php
Files in intercom/intercom-php
Package intercom-php
Short Description Intercom API client.
License MIT
Homepage https://developers.intercom.com/docs
Informations about the package intercom-php
Intercom PHP Library
The Intercom PHP library provides convenient access to the Intercom API from PHP.
Installation
Clients
Initialize your client using your access token:
If you already have an access token you can find it here. If you want to create or learn more about access tokens then you can find more info here.
If you are building a third party application you can get your OAuth token by setting-up-oauth for Intercom.
For most use cases the code snippet above should suffice. However, if needed, you can customize the Intercom client as follows:
Add custom headers
Use a custom HTTP client
This client needs to implement Psr\Http\Client\ClientInterface
Use a custom request factory
This factory needs to implement Http\Message\RequestFactory
Use a custom URI factory
This factory needs to implement Http\Message\UriFactory
API Versions
This library is intended to work with any API Version. By default, the version that you have configured for your App in the Developer Hub will be used. However, you can overwrite that version for a single request or for all the requests using this library by including the Intercom-Version
header when initializing the client as follows:
For more information about API Versioning, please check the API Versioning Documentation and the API changelog.
Important: Not all the resources supported by this API are supported by all API versions. See the notes below or the API Reference for more information about the resources supported by each API version.
Contacts
This resource is only available in API Versions 2.0 and above
Users
This resource is only available in API Versions 1.0 to 1.4. Newer versions use the Contacts resource instead.
See here for more info on using the scroll parameter
Leads
This resource is only available in API Versions 1.0 to 1.4. Newer versions use the Contacts resource instead.
See here for more info on using the scroll parameter
Visitors
Retrieve user_id
of a visitor via the JavaScript API
Tags
Segments
Events
Companies
Admins
Messages
Conversations
Counts
Notes
Teams
Rate Limits
Rate limit info is passed via the rate limit headers. You can access this information as follows:
For more info on rate limits and these headers please see the API reference docs
Pagination
List endpoints return a Pager<T>
which lets you loop over all items and the SDK will automatically make multiple HTTP requests for you.
You can also iterate page-by-page:
Scroll
The first time you use the scroll API you can just send a simple GET request. This will return up to 100 records. If you have more than 100 you will need to make another call. To do this you need to use to scroll_parameter returned in the original response. Use this for subsequent responses until you get an empty array of records. This means there are no records and the scroll timer will be reset. For more information on scroll please see the API reference Here is an example of a simple way to use the scroll for multiple calls:
Exceptions
Exceptions are handled by HTTPlug. Every exception thrown implements Http\Client\Exception
. See the http client exceptions and the client and server errors.
The Intercom API may return an unsuccessful HTTP response, for example when a resource is not found (404).
If you want to catch errors you can wrap your API call into a try/catch block:
Pull Requests
-
Add tests! Your patch won't be accepted if it doesn't have tests.
-
Document any change in behaviour. Make sure the README and any other relevant documentation are kept up-to-date.
-
Create topic branches. Don't ask us to pull from your master branch.
-
One pull request per feature. If you want to do more than one thing, send multiple pull requests.
- Send coherent history. Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before sending them to us.
Requirements
This SDK requires PHP ^8.1.
Usage
Instantiate and use the client with the following:
Exception Handling
When the API returns a non-success status code (4xx or 5xx response), an exception will be thrown.
Advanced
Custom Client
This SDK is built to work with any HTTP client that implements Guzzle's ClientInterface
.
By default, if no client is provided, the SDK will use Guzzle's default HTTP client.
However, you can pass your own client that adheres to ClientInterface
:
Retries
The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long as the request is deemed retryable and the number of retry attempts has not grown larger than the configured retry limit (default: 2).
A request is deemed retryable when any of the following HTTP status codes is returned:
Use the maxRetries
request option to configure this behavior.
Timeouts
The SDK defaults to a 30 second timeout. Use the timeout
option to configure this behavior.
Contributing
While we value open-source contributions to this SDK, this library is generated programmatically. Additions made directly to this library would have to be moved over to our generation code, otherwise they would be overwritten upon the next generated release. Feel free to open a PR as a proof of concept, but know that we will not be able to merge it as-is. We suggest opening an issue first to discuss with us!
On the other hand, contributions to the README are always very welcome!