Sample code for 30+ languages & platforms
Dart

GetHarvest - Get Client Contacts

See more GetHarvest Examples

Returns a list of your contacts.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

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

  final http = CkHttp();

  // Implements the following CURL command:

  // curl "https://api.harvestapp.com/v2/contacts" \
  //   -H "Authorization: Bearer ACCESS_TOKEN" \
  //   -H "Harvest-Account-Id: ACCOUNT_ID" \
  //   -H "User-Agent: MyApp (yourname@example.com)"

  http.setRequestHeader('User-Agent', 'MyApp (yourname@example.com)');
  http.setRequestHeader('Authorization', 'Bearer ACCESS_TOKEN');
  http.setRequestHeader('Harvest-Account-Id', 'ACCOUNT_ID');

  final sbResponseBody = CkStringBuilder();
  try {
    http.quickGetSb('https://api.harvestapp.com/v2/contacts', sbResponseBody);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final jResp = CkJsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  print('Response Body:');
  print(jResp.emit());

  final respStatusCode = http.lastStatus;
  print('Response Status Code = $respStatusCode');
  if (respStatusCode >= 400) {
    print('Response Header:');
    print(http.lastHeader);
    print('Failed.');
    return;
  }

  // Sample JSON response:

  // {
  //   "contacts": [
  //     {
  //       "id": 4706479,
  //       "title": "Owner",
  //       "first_name": "Jane",
  //       "last_name": "Doe",
  //       "email": "janedoe@example.com",
  //       "phone_office": "(203) 697-8885",
  //       "phone_mobile": "(203) 697-8886",
  //       "fax": "(203) 697-8887",
  //       "created_at": "2017-06-26T21:20:07Z",
  //       "updated_at": "2017-06-26T21:27:07Z",
  //       "client": {
  //         "id": 5735774,
  //         "name": "ABC Corp"
  //       }
  //     },
  //     {
  //       "id": 4706453,
  //       "title": "Manager",
  //       "first_name": "Richard",
  //       "last_name": "Roe",
  //       "email": "richardroe@example.com",
  //       "phone_office": "(318) 515-5905",
  //       "phone_mobile": "(318) 515-5906",
  //       "fax": "(318) 515-5907",
  //       "created_at": "2017-06-26T21:06:55Z",
  //       "updated_at": "2017-06-26T21:27:20Z",
  //       "client": {
  //         "id": 5735776,
  //         "name": "123 Industries"
  //       }
  //     }
  //   ],
  //   "per_page": 100,
  //   "total_pages": 1,
  //   "total_entries": 2,
  //   "next_page": null,
  //   "previous_page": null,
  //   "page": 1,
  //   "links": {
  //     "first": "https://api.harvestapp.com/v2/contacts?page=1&per_page=100",
  //     "next": null,
  //     "previous": null,
  //     "last": "https://api.harvestapp.com/v2/contacts?page=1&per_page=100"
  //   }
  // }

  // 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 i = 0;
  var id = 0;
  var title = '';
  var firstName = '';
  var lastName = '';
  var email = '';
  var phoneOffice = '';
  var phoneMobile = '';
  var fax = '';
  var createdAt = '';
  var updatedAt = '';
  var clientId = 0;
  var clientName = '';

  final perPage = jResp.intOf('per_page');
  final totalPages = jResp.intOf('total_pages');
  final totalEntries = jResp.intOf('total_entries');
  final nextPage = jResp.stringOf('next_page');
  final previousPage = jResp.stringOf('previous_page');
  final page = jResp.intOf('page');
  final linksFirst = jResp.stringOf('links.first');
  final linksNext = jResp.stringOf('links.next');
  final linksPrevious = jResp.stringOf('links.previous');
  final linksLast = jResp.stringOf('links.last');
  i = 0;
  final countI = jResp.sizeOfArray('contacts');
  while (i < countI) {
    jResp.i = i;
    id = jResp.intOf('contacts[i].id');
    title = jResp.stringOf('contacts[i].title');
    firstName = jResp.stringOf('contacts[i].first_name');
    lastName = jResp.stringOf('contacts[i].last_name');
    email = jResp.stringOf('contacts[i].email');
    phoneOffice = jResp.stringOf('contacts[i].phone_office');
    phoneMobile = jResp.stringOf('contacts[i].phone_mobile');
    fax = jResp.stringOf('contacts[i].fax');
    createdAt = jResp.stringOf('contacts[i].created_at');
    updatedAt = jResp.stringOf('contacts[i].updated_at');
    clientId = jResp.intOf('contacts[i].client.id');
    clientName = jResp.stringOf('contacts[i].client.name');
    i++;
  }
}