Swift
Swift
GetHarvest - Test Personal Access Token
See more GetHarvest Examples
Demonstrates how to test your GetHarvest Personal Access TokenChilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
http.setRequestHeader(name: "User-Agent", value: "Harvest API Example")
http.setRequestHeader(name: "Harvest-Account-ID", value: "ACCOUNT_ID")
http.setRequestHeader(name: "Authorization", value: "Bearer ACCESS_TOKEN")
let sbResponseBody = CkoStringBuilder()!
success = http.quickGetSb(url: "https://api.harvestapp.com/api/v2/users/me.json", sbContent: sbResponseBody)
if success != true {
print("\(http.lastErrorText!)")
return
}
let jResp = CkoJsonObject()!
jResp.loadSb(sb: sbResponseBody)
jResp.emitCompact = false
print("Response Body:")
print("\(jResp.emit()!)")
var respStatusCode: Int = http.lastStatus.intValue
print("Response Status Code = \(respStatusCode)")
if respStatusCode >= 400 {
print("Response Header:")
print("\(http.lastResponseHeader!)")
return
}
// Sample JSON response:
// {
// "id": 2826142,
// "first_name": "Joe",
// "last_name": "Johnson",
// "email": "joe@example.com",
// "telephone": "",
// "timezone": "Central Time (US & Canada)",
// "weekly_capacity": 126000,
// "has_access_to_all_future_projects": false,
// "is_contractor": false,
// "is_admin": true,
// "is_project_manager": false,
// "can_see_rates": true,
// "can_create_projects": true,
// "can_create_invoices": true,
// "is_active": true,
// "created_at": "2019-06-06T15:57:58Z",
// "updated_at": "2019-06-06T15:58:32Z",
// "default_hourly_rate": 175.0,
// "cost_rate": 60.0,
// "roles": [
// "role1",
// "role2"
// ],
// "avatar_url": "https://d3s3969qhosaug.cloudfront.net/default-avatars/4d46.png?1559836678"
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
var id: Int
var first_name: String?
var last_name: String?
var email: String?
var telephone: String?
var timezone: String?
var weekly_capacity: Int
var has_access_to_all_future_projects: Bool
var is_contractor: Bool
var is_admin: Bool
var is_project_manager: Bool
var can_see_rates: Bool
var can_create_projects: Bool
var can_create_invoices: Bool
var is_active: Bool
var created_at: String?
var updated_at: String?
var default_hourly_rate: String?
var cost_rate: String?
var avatar_url: String?
var i: Int
var count_i: Int
var strVal: String?
id = jResp.int(of: "id").intValue
first_name = jResp.string(of: "first_name")
last_name = jResp.string(of: "last_name")
email = jResp.string(of: "email")
telephone = jResp.string(of: "telephone")
timezone = jResp.string(of: "timezone")
weekly_capacity = jResp.int(of: "weekly_capacity").intValue
has_access_to_all_future_projects = jResp.bool(of: "has_access_to_all_future_projects")
is_contractor = jResp.bool(of: "is_contractor")
is_admin = jResp.bool(of: "is_admin")
is_project_manager = jResp.bool(of: "is_project_manager")
can_see_rates = jResp.bool(of: "can_see_rates")
can_create_projects = jResp.bool(of: "can_create_projects")
can_create_invoices = jResp.bool(of: "can_create_invoices")
is_active = jResp.bool(of: "is_active")
created_at = jResp.string(of: "created_at")
updated_at = jResp.string(of: "updated_at")
default_hourly_rate = jResp.string(of: "default_hourly_rate")
cost_rate = jResp.string(of: "cost_rate")
avatar_url = jResp.string(of: "avatar_url")
i = 0
count_i = jResp.size(ofArray: "roles").intValue
while i < count_i {
jResp.i = i
strVal = jResp.string(of: "roles[i]")
i = i + 1
}
}