Sample code for 30+ languages & platforms
React Native

GetHarvest - Get Client Contacts

See more GetHarvest Examples

Returns a list of your contacts.

Chilkat React Native Downloads

React Native
import { Http, JsonObject, StringBuilder } from '@chilkat/react-native'

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

  const http = new Http();

  // 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');

  const sbResponseBody = new StringBuilder();
  try {
    await http.quickGetSbAsync('https://api.harvestapp.com/v2/contacts', sbResponseBody);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  const jResp = new JsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  console.log('Response Body:');
  console.log(jResp.emit());

  const respStatusCode = http.lastStatus;
  console.log(`Response Status Code = ${respStatusCode}`);
  if (respStatusCode >= 400) {
    console.log('Response Header:');
    console.log(http.lastHeader);
    console.log('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

  let i = 0;
  let id = 0;
  let title = '';
  let firstName = '';
  let lastName = '';
  let email = '';
  let phoneOffice = '';
  let phoneMobile = '';
  let fax = '';
  let createdAt = '';
  let updatedAt = '';
  let clientId = 0;
  let clientName = '';

  const perPage = jResp.intOf('per_page');
  const totalPages = jResp.intOf('total_pages');
  const totalEntries = jResp.intOf('total_entries');
  const nextPage = jResp.stringOf('next_page');
  const previousPage = jResp.stringOf('previous_page');
  const page = jResp.intOf('page');
  const linksFirst = jResp.stringOf('links.first');
  const linksNext = jResp.stringOf('links.next');
  const linksPrevious = jResp.stringOf('links.previous');
  const linksLast = jResp.stringOf('links.last');
  i = 0;
  const 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++;
  }
}