Chilkat Online Tools

Foxpro / Support API / Incremental Sample Export

Back to Collection Items

LOCAL loHttp
LOCAL lnSuccess
LOCAL loQueryParams
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcRequester_id
LOCAL lcAllow_attachments
LOCAL lcAllow_channelback
LOCAL lcAssignee_email
LOCAL lcAssignee_id
LOCAL lcAttribute_value_ids
LOCAL lcBrand_id
LOCAL lcCollaborator_ids
LOCAL lcCreated_at
LOCAL lcCustom_fields
LOCAL lcCustom_status_id
LOCAL lcDescription
LOCAL lcDue_at
LOCAL lcEmail_cc_ids
LOCAL lcExternal_id
LOCAL lcFollower_ids
LOCAL lcFollowup_ids
LOCAL lcForum_topic_id
LOCAL lcFrom_messaging_channel
LOCAL lcGroup_id
LOCAL lcHas_incidents
LOCAL lcId
LOCAL lcIs_public
LOCAL lcMacro_id
LOCAL lcMacro_ids
LOCAL lcOrganization_id
LOCAL lcPriority
LOCAL lcProblem_id
LOCAL lcRaw_subject
LOCAL lcRecipient
LOCAL lcSafe_update
LOCAL lnAliquad0
LOCAL lcSharing_agreement_ids
LOCAL lcStatus
LOCAL lcSubject
LOCAL lcSubmitter_id
LOCAL lcTags
LOCAL lcTicket_form_id
LOCAL lcV_type
LOCAL lcUpdated_at
LOCAL lcUpdated_stamp
LOCAL lcUrl
LOCAL lcChannel
LOCAL lcElit2f
LOCAL lcVia_followup_source_id
LOCAL lcVia_id
LOCAL lcMinim_01
LOCAL lnIpsum8c2
LOCAL lcNostrud_ee
LOCAL j
LOCAL lnCount_j
LOCAL lcEmail
LOCAL lcName
LOCAL lcCount
LOCAL lcEnd_of_stream
LOCAL lcEnd_time
LOCAL lcNext_page
LOCAL i
LOCAL lnCount_i

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat_9_5_0.Http')

loHttp.BasicAuth = 1
loHttp.Login = "login"
loHttp.Password = "password"

loQueryParams = CreateObject('Chilkat_9_5_0.JsonObject')
loQueryParams.UpdateString("start_time","<integer>")

loHttp.SetRequestHeader("Accept","application/json")

loResp = loHttp.QuickRequestParams("GET","https://example.zendesk.com/api/v2/incremental/:incremental_resource/sample",loQueryParams)
IF (loHttp.LastMethodSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loQueryParams
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat_9_5_0.StringBuilder')
loResp.GetBodySb(loSbResponseBody)

loJResp = CreateObject('Chilkat_9_5_0.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loResp
    RELEASE loHttp
    RELEASE loQueryParams
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

RELEASE loResp

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
*   "count": "<integer>",
*   "end_of_stream": "<boolean>",
*   "end_time": "<integer>",
*   "next_page": "<string>",
*   "tickets": [
*     {
*       "requester_id": "<integer>",
*       "allow_attachments": "<boolean>",
*       "allow_channelback": "<boolean>",
*       "assignee_email": "<string>",
*       "assignee_id": "<integer>",
*       "attribute_value_ids": "<array>",
*       "brand_id": "<integer>",
*       "collaborator_ids": "<array>",
*       "collaborators": [
*         {
*           "email": "<email>",
*           "name": "<string>"
*         },
*         {
*           "email": "<email>",
*           "name": "<string>"
*         }
*       ],
*       "comment": {},
*       "created_at": "<dateTime>",
*       "custom_fields": "<array>",
*       "custom_status_id": "<integer>",
*       "description": "<string>",
*       "due_at": "<dateTime>",
*       "email_cc_ids": "<array>",
*       "email_ccs": {},
*       "external_id": "<string>",
*       "follower_ids": "<array>",
*       "followers": {},
*       "followup_ids": "<array>",
*       "forum_topic_id": "<integer>",
*       "from_messaging_channel": "<boolean>",
*       "group_id": "<integer>",
*       "has_incidents": "<boolean>",
*       "id": "<integer>",
*       "is_public": "<boolean>",
*       "macro_id": "<integer>",
*       "macro_ids": "<array>",
*       "metadata": {},
*       "organization_id": "<integer>",
*       "priority": "high",
*       "problem_id": "<integer>",
*       "raw_subject": "<string>",
*       "recipient": "<string>",
*       "requester": {},
*       "safe_update": "<boolean>",
*       "satisfaction_rating": {
*         "aliquad0": false
*       },
*       "sharing_agreement_ids": "<array>",
*       "status": "pending",
*       "subject": "<string>",
*       "submitter_id": "<integer>",
*       "tags": "<array>",
*       "ticket_form_id": "<integer>",
*       "type": "question",
*       "updated_at": "<dateTime>",
*       "updated_stamp": "<string>",
*       "url": "<string>",
*       "via": {
*         "channel": "<string>",
*         "source": {
*           "elit2f": -86657295.30733354
*         }
*       },
*       "via_followup_source_id": "<integer>",
*       "via_id": "<integer>",
*       "voice_comment": {}
*     },
*     {
*       "requester_id": "<integer>",
*       "allow_attachments": "<boolean>",
*       "allow_channelback": "<boolean>",
*       "assignee_email": "<string>",
*       "assignee_id": "<integer>",
*       "attribute_value_ids": "<array>",
*       "brand_id": "<integer>",
*       "collaborator_ids": "<array>",
*       "collaborators": [
*         {
*           "email": "<email>",
*           "name": "<string>"
*         },
*         {
*           "email": "<email>",
*           "name": "<string>"
*         }
*       ],
*       "comment": {},
*       "created_at": "<dateTime>",
*       "custom_fields": "<array>",
*       "custom_status_id": "<integer>",
*       "description": "<string>",
*       "due_at": "<dateTime>",
*       "email_cc_ids": "<array>",
*       "email_ccs": {},
*       "external_id": "<string>",
*       "follower_ids": "<array>",
*       "followers": {},
*       "followup_ids": "<array>",
*       "forum_topic_id": "<integer>",
*       "from_messaging_channel": "<boolean>",
*       "group_id": "<integer>",
*       "has_incidents": "<boolean>",
*       "id": "<integer>",
*       "is_public": "<boolean>",
*       "macro_id": "<integer>",
*       "macro_ids": "<array>",
*       "metadata": {},
*       "organization_id": "<integer>",
*       "priority": "high",
*       "problem_id": "<integer>",
*       "raw_subject": "<string>",
*       "recipient": "<string>",
*       "requester": {},
*       "safe_update": "<boolean>",
*       "satisfaction_rating": {
*         "minim_01": "minim tempor",
*         "ipsum8c2": false
*       },
*       "sharing_agreement_ids": "<array>",
*       "status": "open",
*       "subject": "<string>",
*       "submitter_id": "<integer>",
*       "tags": "<array>",
*       "ticket_form_id": "<integer>",
*       "type": "task",
*       "updated_at": "<dateTime>",
*       "updated_stamp": "<string>",
*       "url": "<string>",
*       "via": {
*         "channel": "<string>",
*         "source": {
*           "nostrud_ee": "dolore veniam consequat"
*         }
*       },
*       "via_followup_source_id": "<integer>",
*       "via_id": "<integer>",
*       "voice_comment": {}
*     }
*   ]
* }

* Sample code for parsing the JSON response...
* Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

lcCount = loJResp.StringOf("count")
lcEnd_of_stream = loJResp.StringOf("end_of_stream")
lcEnd_time = loJResp.StringOf("end_time")
lcNext_page = loJResp.StringOf("next_page")
i = 0
lnCount_i = loJResp.SizeOfArray("tickets")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcRequester_id = loJResp.StringOf("tickets[i].requester_id")
    lcAllow_attachments = loJResp.StringOf("tickets[i].allow_attachments")
    lcAllow_channelback = loJResp.StringOf("tickets[i].allow_channelback")
    lcAssignee_email = loJResp.StringOf("tickets[i].assignee_email")
    lcAssignee_id = loJResp.StringOf("tickets[i].assignee_id")
    lcAttribute_value_ids = loJResp.StringOf("tickets[i].attribute_value_ids")
    lcBrand_id = loJResp.StringOf("tickets[i].brand_id")
    lcCollaborator_ids = loJResp.StringOf("tickets[i].collaborator_ids")
    lcCreated_at = loJResp.StringOf("tickets[i].created_at")
    lcCustom_fields = loJResp.StringOf("tickets[i].custom_fields")
    lcCustom_status_id = loJResp.StringOf("tickets[i].custom_status_id")
    lcDescription = loJResp.StringOf("tickets[i].description")
    lcDue_at = loJResp.StringOf("tickets[i].due_at")
    lcEmail_cc_ids = loJResp.StringOf("tickets[i].email_cc_ids")
    lcExternal_id = loJResp.StringOf("tickets[i].external_id")
    lcFollower_ids = loJResp.StringOf("tickets[i].follower_ids")
    lcFollowup_ids = loJResp.StringOf("tickets[i].followup_ids")
    lcForum_topic_id = loJResp.StringOf("tickets[i].forum_topic_id")
    lcFrom_messaging_channel = loJResp.StringOf("tickets[i].from_messaging_channel")
    lcGroup_id = loJResp.StringOf("tickets[i].group_id")
    lcHas_incidents = loJResp.StringOf("tickets[i].has_incidents")
    lcId = loJResp.StringOf("tickets[i].id")
    lcIs_public = loJResp.StringOf("tickets[i].is_public")
    lcMacro_id = loJResp.StringOf("tickets[i].macro_id")
    lcMacro_ids = loJResp.StringOf("tickets[i].macro_ids")
    lcOrganization_id = loJResp.StringOf("tickets[i].organization_id")
    lcPriority = loJResp.StringOf("tickets[i].priority")
    lcProblem_id = loJResp.StringOf("tickets[i].problem_id")
    lcRaw_subject = loJResp.StringOf("tickets[i].raw_subject")
    lcRecipient = loJResp.StringOf("tickets[i].recipient")
    lcSafe_update = loJResp.StringOf("tickets[i].safe_update")
    lnAliquad0 = loJResp.BoolOf("tickets[i].satisfaction_rating.aliquad0")
    lcSharing_agreement_ids = loJResp.StringOf("tickets[i].sharing_agreement_ids")
    lcStatus = loJResp.StringOf("tickets[i].status")
    lcSubject = loJResp.StringOf("tickets[i].subject")
    lcSubmitter_id = loJResp.StringOf("tickets[i].submitter_id")
    lcTags = loJResp.StringOf("tickets[i].tags")
    lcTicket_form_id = loJResp.StringOf("tickets[i].ticket_form_id")
    lcV_type = loJResp.StringOf("tickets[i].type")
    lcUpdated_at = loJResp.StringOf("tickets[i].updated_at")
    lcUpdated_stamp = loJResp.StringOf("tickets[i].updated_stamp")
    lcUrl = loJResp.StringOf("tickets[i].url")
    lcChannel = loJResp.StringOf("tickets[i].via.channel")
    lcElit2f = loJResp.StringOf("tickets[i].via.source.elit2f")
    lcVia_followup_source_id = loJResp.StringOf("tickets[i].via_followup_source_id")
    lcVia_id = loJResp.StringOf("tickets[i].via_id")
    lcMinim_01 = loJResp.StringOf("tickets[i].satisfaction_rating.minim_01")
    lnIpsum8c2 = loJResp.BoolOf("tickets[i].satisfaction_rating.ipsum8c2")
    lcNostrud_ee = loJResp.StringOf("tickets[i].via.source.nostrud_ee")
    j = 0
    lnCount_j = loJResp.SizeOfArray("tickets[i].collaborators")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcEmail = loJResp.StringOf("tickets[i].collaborators[j].email")
        lcName = loJResp.StringOf("tickets[i].collaborators[j].name")
        j = j + 1
    ENDDO
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loQueryParams
RELEASE loSbResponseBody
RELEASE loJResp

Curl Command

curl  -u login:password -G -d "start_time=%3Cinteger%3E"
	-H "Accept: application/json"
https://example.zendesk.com/api/v2/incremental/:incremental_resource/sample

Postman Collection Item JSON

{
  "name": "Incremental Sample Export",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Accept",
        "value": "application/json"
      }
    ],
    "url": {
      "raw": "{{baseUrl}}/api/v2/incremental/:incremental_resource/sample?start_time=<integer>",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "v2",
        "incremental",
        ":incremental_resource",
        "sample"
      ],
      "query": [
        {
          "key": "start_time",
          "value": "<integer>",
          "description": "(Required) The time to start the incremental export from"
        }
      ],
      "variable": [
        {
          "key": "incremental_resource",
          "value": "<string>"
        }
      ]
    },
    "description": "Use this endpoint to test the incremental export format. It's more strict in terms of rate limiting,\nat 10 requests per 20 minutes instead of 10 requests per minute. It also returns only up to 50\nresults per request. Otherwise, it's identical to the above APIs.\n\nUse the `incremental_resource` parameter to specify the resource. Possible values are \"tickets\", \"ticket_events\", \"users\", or \"organizations\".\n"
  },
  "response": [
    {
      "name": "Success response",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v2/incremental/:incremental_resource/sample?start_time=<integer>",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v2",
            "incremental",
            ":incremental_resource",
            "sample"
          ],
          "query": [
            {
              "key": "start_time",
              "value": "<integer>",
              "description": "(Required) The time to start the incremental export from"
            }
          ],
          "variable": [
            {
              "key": "incremental_resource"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"count\": \"<integer>\",\n  \"end_of_stream\": \"<boolean>\",\n  \"end_time\": \"<integer>\",\n  \"next_page\": \"<string>\",\n  \"tickets\": [\n    {\n      \"requester_id\": \"<integer>\",\n      \"allow_attachments\": \"<boolean>\",\n      \"allow_channelback\": \"<boolean>\",\n      \"assignee_email\": \"<string>\",\n      \"assignee_id\": \"<integer>\",\n      \"attribute_value_ids\": \"<array>\",\n      \"brand_id\": \"<integer>\",\n      \"collaborator_ids\": \"<array>\",\n      \"collaborators\": [\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        },\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        }\n      ],\n      \"comment\": {},\n      \"created_at\": \"<dateTime>\",\n      \"custom_fields\": \"<array>\",\n      \"custom_status_id\": \"<integer>\",\n      \"description\": \"<string>\",\n      \"due_at\": \"<dateTime>\",\n      \"email_cc_ids\": \"<array>\",\n      \"email_ccs\": {},\n      \"external_id\": \"<string>\",\n      \"follower_ids\": \"<array>\",\n      \"followers\": {},\n      \"followup_ids\": \"<array>\",\n      \"forum_topic_id\": \"<integer>\",\n      \"from_messaging_channel\": \"<boolean>\",\n      \"group_id\": \"<integer>\",\n      \"has_incidents\": \"<boolean>\",\n      \"id\": \"<integer>\",\n      \"is_public\": \"<boolean>\",\n      \"macro_id\": \"<integer>\",\n      \"macro_ids\": \"<array>\",\n      \"metadata\": {},\n      \"organization_id\": \"<integer>\",\n      \"priority\": \"high\",\n      \"problem_id\": \"<integer>\",\n      \"raw_subject\": \"<string>\",\n      \"recipient\": \"<string>\",\n      \"requester\": {},\n      \"safe_update\": \"<boolean>\",\n      \"satisfaction_rating\": {\n        \"aliquad0\": false\n      },\n      \"sharing_agreement_ids\": \"<array>\",\n      \"status\": \"pending\",\n      \"subject\": \"<string>\",\n      \"submitter_id\": \"<integer>\",\n      \"tags\": \"<array>\",\n      \"ticket_form_id\": \"<integer>\",\n      \"type\": \"question\",\n      \"updated_at\": \"<dateTime>\",\n      \"updated_stamp\": \"<string>\",\n      \"url\": \"<string>\",\n      \"via\": {\n        \"channel\": \"<string>\",\n        \"source\": {\n          \"elit2f\": -86657295.30733354\n        }\n      },\n      \"via_followup_source_id\": \"<integer>\",\n      \"via_id\": \"<integer>\",\n      \"voice_comment\": {}\n    },\n    {\n      \"requester_id\": \"<integer>\",\n      \"allow_attachments\": \"<boolean>\",\n      \"allow_channelback\": \"<boolean>\",\n      \"assignee_email\": \"<string>\",\n      \"assignee_id\": \"<integer>\",\n      \"attribute_value_ids\": \"<array>\",\n      \"brand_id\": \"<integer>\",\n      \"collaborator_ids\": \"<array>\",\n      \"collaborators\": [\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        },\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        }\n      ],\n      \"comment\": {},\n      \"created_at\": \"<dateTime>\",\n      \"custom_fields\": \"<array>\",\n      \"custom_status_id\": \"<integer>\",\n      \"description\": \"<string>\",\n      \"due_at\": \"<dateTime>\",\n      \"email_cc_ids\": \"<array>\",\n      \"email_ccs\": {},\n      \"external_id\": \"<string>\",\n      \"follower_ids\": \"<array>\",\n      \"followers\": {},\n      \"followup_ids\": \"<array>\",\n      \"forum_topic_id\": \"<integer>\",\n      \"from_messaging_channel\": \"<boolean>\",\n      \"group_id\": \"<integer>\",\n      \"has_incidents\": \"<boolean>\",\n      \"id\": \"<integer>\",\n      \"is_public\": \"<boolean>\",\n      \"macro_id\": \"<integer>\",\n      \"macro_ids\": \"<array>\",\n      \"metadata\": {},\n      \"organization_id\": \"<integer>\",\n      \"priority\": \"high\",\n      \"problem_id\": \"<integer>\",\n      \"raw_subject\": \"<string>\",\n      \"recipient\": \"<string>\",\n      \"requester\": {},\n      \"safe_update\": \"<boolean>\",\n      \"satisfaction_rating\": {\n        \"minim_01\": \"minim tempor\",\n        \"ipsum8c2\": false\n      },\n      \"sharing_agreement_ids\": \"<array>\",\n      \"status\": \"open\",\n      \"subject\": \"<string>\",\n      \"submitter_id\": \"<integer>\",\n      \"tags\": \"<array>\",\n      \"ticket_form_id\": \"<integer>\",\n      \"type\": \"task\",\n      \"updated_at\": \"<dateTime>\",\n      \"updated_stamp\": \"<string>\",\n      \"url\": \"<string>\",\n      \"via\": {\n        \"channel\": \"<string>\",\n        \"source\": {\n          \"nostrud_ee\": \"dolore veniam consequat\"\n        }\n      },\n      \"via_followup_source_id\": \"<integer>\",\n      \"via_id\": \"<integer>\",\n      \"voice_comment\": {}\n    }\n  ]\n}"
    }
  ]
}