Sample code for 30+ languages & platforms
React Native Requires Chilkat v11.0.0+

ETrade OAuth1 Authorization (3-legged) Step 1

See more ETrade Examples

Demonstrates the first step in 3-legged OAuth1 authorization for the ETrade REST API. This example sends an HTTP request to the "request token URL" to get a request token that begins the OAuth1 process. (See https://apisb.etrade.com/docs/api/authorization/request_token.html )

This example uses the sandbox request token URL. The live request token URL would be "https://api.etrade.com/oauth/request_token".

Chilkat React Native Downloads

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

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

  const consumerKey = 'ETRADE_CONSUMER_KEY';
  const consumerSecret = 'ETRADE_CONSUMER_SECRET';

  // Note: This example uses the sandbox request token URL.
  // The live Get Request Token Request URL is:
  // https://api.etrade.com/oauth/request_token
  // This example will use the Sandbox Token Request URL:
  const requestTokenUrl = 'https://apisb.etrade.com/oauth/request_token';

  const http = new Http();

  http.oAuth1 = true;
  http.oAuthConsumerKey = consumerKey;
  http.oAuthConsumerSecret = consumerSecret;
  http.oAuthCallback = 'oob';

  const resp = new HttpResponse();
  try {
    await http.httpNoBodyAsync('GET', requestTokenUrl, resp);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  // If successful, the resp.BodyStr contains something like this:  
  // oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
  console.log(resp.bodyStr);

  const hashTab = new Hashtable();
  hashTab.addQueryParams(resp.bodyStr);

  const requestToken = hashTab.lookupStr('oauth_token');
  const requestTokenSecret = hashTab.lookupStr('oauth_token_secret');
  http.oAuthTokenSecret = requestTokenSecret;

  console.log(`oauth_token = ${requestToken}`);
  console.log(`oauth_token_secret = ${requestTokenSecret}`);

  // Save this request token for the next step..
  const json = new JsonObject();
  json.appendString('oauth_token', requestToken);
  json.appendString('oauth_token_secret', requestTokenSecret);

  const fac = new FileAccess();
  fac.writeEntireTextFile('qa_data/tokens/etrade_request_token.json', json.emit(), 'utf-8', false);

  // ---------------------------------------------------------------------------

  // The next step is to form a URL to send to the authorizeUrl
  // This is an HTTP GET that we load into a popup browser.
  const authorizeUrl = 'https://us.etrade.com/e/t/etws/authorize';

  const sbUrlForBrowser = new StringBuilder();
  sbUrlForBrowser.append(authorizeUrl);
  sbUrlForBrowser.append('?key=');
  sbUrlForBrowser.append(consumerKey);
  sbUrlForBrowser.append('&token=');
  sbUrlForBrowser.append(requestToken);
  const url = sbUrlForBrowser.getAsString();

  // Launch the system's default browser navigated to the URL.
  const oauth2 = new OAuth2();
  try {
    oauth2.launchBrowser(url);
  } catch {
    console.log(oauth2.lastErrorText);
    return;
  }

  // The ETrade account owner will login and grant access to the application.
  // A short verifier code will be displayed (as shown below), and this must be copy-and-pasted
  // into the next step to Complete the 3-legged OAuth1 Authorization 

  // Note: The browser will NOT automatically direct you to the next page.
  // You should copy the verifier code, close the browser, and then paste the verifier
  // code into your application.

  // image
}