Sample code for 30+ languages & platforms
React Native

Xero Get File Content (Files API)

Demonstrates how to download the content of a Xero file.

Note: This example requires Chilkat v9.5.0.64 or greater.

Chilkat React Native Downloads

React Native
import { BinData, Rest, StringBuilder } from '@chilkat/react-native'

async function chilkatExample() {
  // Note: Requires Chilkat v9.5.0.64 or greater.

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

  const rest = new Rest();

  // Before sending REST API calls, the REST object needs to be
  // initialized for OAuth1.
  // See Xero 2-Legged OAuth1 Setup for sample code.

  // Assuming the REST object's OAuth1 authenticator is setup, and the initial
  // connection was made, we may now send REST HTTP requests..

  // ------------------------------------------------------------------------------
  const fileID = 'f042e9a3-a31d-4595-b8b3-6030ea6084bb';

  const sbPath = new StringBuilder();
  sbPath.append('/files.xro/1.0/Files/{FileId}/Content');
  const numReplaced = sbPath.replace('{FileId}', fileID);

  const jpgData = new BinData();
  try {
    await rest.fullRequestNoBodyBdAsync('GET', sbPath.getAsString(), jpgData);
  } catch {
    console.log(rest.lastErrorText);
    return;
  }

  // A 200 response is expected for actual success.
  // If we don't get a 200 response, then the response body was not actually
  // the file data, but it was text containing error information.
  if (rest.responseStatusCode !== 200) {
    const sbErrorText = new StringBuilder();
    sbErrorText.appendBd(jpgData, 'utf-8', 0, 0);
    console.log(sbErrorText.getAsString());
    console.log('-- Failed.');
    return;
  }

  // Save to a local file.
  try {
    jpgData.writeFile('qa_output/xero_penguins.jpg');
  } catch {
    console.log('Failed to save to local file.');
  }

  console.log('Xero Get File was Successful.');
}