This is a Zendesk client implementation written in Java using AsyncHttpClient and Jackson.
Start by creating a Zendesk
instance
Zendesk zd = new Zendesk.Builder("https://{{your domain}}.zendesk.com")
.setUsername("...")
.setToken("...") // or .setPassword("...")
.build();
If you are behind a proxy, or want to otherwise control the lifecycle of the AsyncHttpClient
instance
you should pass that through to the builder too. If you don't pass an AsyncHttpClient
instance to the builder
it will create its own which will be closed by the Zendesk.close()
method.
Where methods return paged data sets, an Iterable
is returned that will lazy-fetch one page at a time until
all records have been fetched, so e.g.
for (Ticket ticket: zd.getTickets()) {
...
}
will iterate through all tickets. Most likely you will want to implement your own cut-off process to stop iterating when you have got enough data.
Here is the status of the various API components:
- Tickets ✓
- Ticket Audits ✓
- Incremental Export - Partial (ticket only)
- Ticket Fields ✓
- Ticket Import
- Ticket Metrics ✓
- Ticket Forms getTicketForm() and getTicketForms()
- Views
- Users ✓
- Requests ✓
- User Identities ✓
- Groups ✓
- Group Membership ✓
- Custom Agent Roles
- Organizations ✓ except for related info
- Search ✓ except for topics and sort ordering
- Tags
- Forums ✓
- Forum Subscriptions
- Categories
- Topics ✓
- Topic Comments
- Topic Subscriptions
- Topic Votes
- Account Settings
- Activity Stream
- Attachments ✓
- Autocompletion
- Automations
- Job Statuses
- Locales
- Macros ✓ except for restrictions
- Restrictions and Responsibilities
- Satisfaction Ratings ✓
- Sharing Agreements
- Suspended Tickets
- Triggers ✓
-
0.0.x - Initial release series
-
0.1.x - Switched from
Integer
as the id type toLong
due to reports of overflow -
0.2.x - At request of Zendesk, renamed
ZenDesk
toZendesk
-
0.3.x - Fixed infinite loop with PagedIterable, updated async-http-client dependency to 1.9.x.