Sample code for 30+ languages & platforms
Go

GetHarvest - Test Personal Access Token

See more GetHarvest Examples

Demonstrates how to test your GetHarvest Personal Access Token

Chilkat Go Downloads

Go
    success := false

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

    http := chilkat.NewHttp()

    http.SetRequestHeader("User-Agent","Harvest API Example")
    http.SetRequestHeader("Harvest-Account-ID","ACCOUNT_ID")
    http.SetRequestHeader("Authorization","Bearer ACCESS_TOKEN")

    sbResponseBody := chilkat.NewStringBuilder()
    success = http.QuickGetSb("https://api.harvestapp.com/api/v2/users/me.json",sbResponseBody)
    if success != true {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    jResp := chilkat.NewJsonObject()
    jResp.LoadSb(sbResponseBody)
    jResp.SetEmitCompact(false)

    fmt.Println("Response Body:")
    fmt.Println(*jResp.Emit())

    respStatusCode := http.LastStatus()
    fmt.Println("Response Status Code = ", respStatusCode)

    if respStatusCode >= 400 {
        fmt.Println("Response Header:")
        fmt.Println(http.LastResponseHeader())
        http.DisposeHttp()
        sbResponseBody.DisposeStringBuilder()
        jResp.DisposeJsonObject()
        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 = new(string)
    var last_name *string = new(string)
    var email *string = new(string)
    var telephone *string = new(string)
    var timezone *string = new(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 = new(string)
    var updated_at *string = new(string)
    var default_hourly_rate *string = new(string)
    var cost_rate *string = new(string)
    var avatar_url *string = new(string)
    var i int
    var count_i int
    var strVal *string = new(string)

    id = jResp.IntOf("id")
    first_name = jResp.StringOf("first_name")
    last_name = jResp.StringOf("last_name")
    email = jResp.StringOf("email")
    telephone = jResp.StringOf("telephone")
    timezone = jResp.StringOf("timezone")
    weekly_capacity = jResp.IntOf("weekly_capacity")
    has_access_to_all_future_projects = jResp.BoolOf("has_access_to_all_future_projects")
    is_contractor = jResp.BoolOf("is_contractor")
    is_admin = jResp.BoolOf("is_admin")
    is_project_manager = jResp.BoolOf("is_project_manager")
    can_see_rates = jResp.BoolOf("can_see_rates")
    can_create_projects = jResp.BoolOf("can_create_projects")
    can_create_invoices = jResp.BoolOf("can_create_invoices")
    is_active = jResp.BoolOf("is_active")
    created_at = jResp.StringOf("created_at")
    updated_at = jResp.StringOf("updated_at")
    default_hourly_rate = jResp.StringOf("default_hourly_rate")
    cost_rate = jResp.StringOf("cost_rate")
    avatar_url = jResp.StringOf("avatar_url")
    i = 0
    count_i = jResp.SizeOfArray("roles")
    for i < count_i {
        jResp.SetI(i)
        strVal = jResp.StringOf("roles[i]")
        i = i + 1
    }


    http.DisposeHttp()
    sbResponseBody.DisposeStringBuilder()
    jResp.DisposeJsonObject()