mpclarkson/freshdesk-php-sdk
PHP 5.5+ SDK for Freshdesk API v2. Simple, resource-based client: $api->tickets->all/create/update/view/delete, plus contacts, agents, companies, groups and more. Returns plain arrays. Composer install and easy Symfony/Laravel integration.
This is a PHP 5.5+ SDK for the Freshdesk API v2.
If you have questions, please contact me or open an issue on GitHub.
require __DIR__ . '/vendor/autoload.php';
use \Freshdesk\Api;
$api = new Api("your_freshdesk_api_key", "your_freshdesk_domain");
$all = $api->tickets->all();
$some = $api->tickets->all(['page' => 2]);
$new = $api->tickets->create($data);
$updated = $api->tickets->update($data);
$api->tickets->delete($id);
$existing = $api->tickets->view($id);
//Responses are simple arrays, e.g.:
$id = $existing['id'];
$first = $all[0];
To integrate this library into your application, use Composer.
Add mpclarkson/freshdesk-php-sdk to your composer.json file:
{
"require": {
"mpclarkson/freshdesk-php-sdk": "dev-master"
}
}
Then run:
php composer.phar install
Full documentation is available here
Creating a new API instance is very easy. All you need is your Freshdesk API key and your Freshdesk domain.
require __DIR__ . '/vendor/autoload.php';
use \Freshdesk\Api;
$api = new Api("your_freshdesk_api_key", "your_freshdesk_domain");
The available methods for each resource are available via a public property on the api, for example:
//Contacts
$contacts = $api->contacts->update($contactId, $data);
//Agents
$me = $api->agents->current();
//Companies
$company = $api->companies->create($data);
//Groups
$deleted = $api->groups->delete($groupId);
//Tickets
$ticket = $api->tickets->view($filters);
//Time Entries
$time = $api->timeEntries->all($ticket['id']);
//Conversations
$ticket = $api->conversations->note($ticketId, $data);
//Categories
$newCategory = $api->categories->create($data);
//Forums
$forum = $api->forums->create($categoryId, $data);
//Topics
$topics = $api->topics->monitor($topicId, $userId);
//Comments
$comment = $api->comments->create($forumId);
//Email Configs
$configs = $api->emailConfigs->all();
//Products
$product = $api->products->view($productId);
//Business Hours
$hours = $api->businessHours->all();
//SLA Policy
$policies = $api->slaPolicies->all();
All responses are arrays of data. Please refer to Freshdesk's documentation for further information.
All GET requests accept an optional array $query parameter to filter
results. For example:
//Page 2 with 50 results per page
$page2 = $this->forums->all(['page' => 2, 'per_page' => 50]);
//Tickets for a specific customer
$tickets = $this->tickets->view(['company_id' => $companyId]);
Please read the Freshdesk documentation for further information on
filtering GET requests.
This is a work in progress and PRs are welcome. Please read the contributing guide.
Nearly all api calls are available except for the Solutions and Surveys,
which Freshdesk has not yet implemented.
The library was written and maintained by Matthew Clarkson from Hilenium.
How can I help you explore Laravel packages today?