net2grid / zendesk_api_client_php
PHP Client for Zendesk REST API. See http://developer.zendesk.com/api-docs
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: ^6.0
- mmucklo/inflect: 0.3.*
Requires (Dev)
- fzaninotto/faker: >=1.5.0
- phpmd/phpmd: @stable
- phpunit/phpunit: 4.5.*
- squizlabs/php_codesniffer: 2.*
- dev-master
- v2.x-dev
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- 2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- 2.0.0-beta
- v1.x-dev
- v1.2.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- dev-Zendesk-TicketComments-PR
- dev-mio/poser
- dev-jramos/MI-421/retrieve-articles
- dev-jramos/create-or-update-ticket
- dev-mio/find-trigger
- dev-jose/add-body-to-exception
- dev-jsmale/response_exception
- dev-revert-178-mio/readme
- dev-jose/MI-147-app-locations
- dev-jose/mock-tests
- dev-atroche/better-debug-info
- dev-ytang/revise_testsuite
- dev-dpawluk/rebase_mikealmond
This package is not auto-updated.
Last update: 2024-11-09 20:50:47 UTC
README
API Client Version
This is the second version of our PHP API client. The previous version of the API client can be found on the v1 branch.
API version support
This client only supports Zendesk's API v2. Please see our API documentation for more information.
Requirements
- PHP 5.5+
Installation
The Zendesk PHP API client can be installed using Composer.
Composer
Inside of composer.json
specify the following:
{ "require": { "net2grid/zendesk_api_client_php": "dev-master" } }
Upgrading from V1 to V2
If you are upgrading from v1 of the client, we've written an upgrade guide to highlight some of the key differences.
Configuration
Configuration is done through an instance of Zendesk\API\HttpClient
.
The block is mandatory and if not passed, an error will be thrown.
// load Composer require 'vendor/autoload.php'; use Zendesk\API\HttpClient as ZendeskAPI; $subdomain = "subdomain"; $username = "email@example.com"; // replace this with your registered email $token = "6wiIBWbGkBMo1mRDMuVwkw1EPsNkeUj95PIz2akv"; // replace this with your token $client = new ZendeskAPI($subdomain); $client->setAuth('basic', ['username' => $username, 'token' => $token]);
Usage
Basic Operations
// Get all tickets $tickets = $client->tickets()->findAll(); print_r($tickets); // Create a new ticket $newTicket = $client->tickets()->create([ 'subject' => 'The quick brown fox jumps over the lazy dog', 'comment' => [ 'body' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' . 'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' ], 'priority' => 'normal' ]); print_r($newTicket); // Update a ticket $client->tickets()->update(123,[ 'priority' => 'high' ]); // Delete a ticket $client->tickets()->delete(123);
Attachments
$attachment = $client->attachments()->upload([ 'file' => getcwd().'/tests/assets/UK.png', 'type' => 'image/png', 'name' => 'UK.png' // Optional parameter, will default to filename.ext ]);
Side-loading
Side-loading allows you to retrieve related records as part of a single request. See [the documentation] for more information. (https://developer.zendesk.com/rest_api/docs/core/side_loading).
An example of sideloading with the client is shown below.
$tickets = $client->tickets()->sideload(['users', 'groups'])->findAll();
Pagination
The Zendesk API offers a way to get the next pages for the requests and is documented in the Zendesk Deveoloper Documentation.
The way to do this is to pass it as an option to your request.
$tickets = $this->client->tickets()->findAll(['per_page' => 10, 'page' => 2]);
The allowed options are
- per_page
- page
- sort_order
Copyright and license
Copyright 2013-present Zendesk
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.