Sample code for 30+ languages & platforms
Java 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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.FileAccess;
import com.chilkatsoft.chilkat2.Hashtable;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.OAuth2;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        boolean success = false;

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

        String consumerKey = "ETRADE_CONSUMER_KEY";
        String 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:
        String requestTokenUrl = "https://apisb.etrade.com/oauth/request_token";

        Http http = new Http();
        success = true;

        http.setOAuth1(true);
        http.setOAuthConsumerKey(consumerKey);
        http.setOAuthConsumerSecret(consumerSecret);
        http.setOAuthCallback("oob");

        HttpResponse resp = new HttpResponse();
        try {
            http.httpNoBody("GET", requestTokenUrl, resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // If successful, the resp.BodyStr contains something like this:
        // oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
        System.out.println(resp.getBodyStr());

        Hashtable hashTab = new Hashtable();
        hashTab.addQueryParams(resp.getBodyStr());

        String requestToken = hashTab.lookupStr("oauth_token");
        String requestTokenSecret = hashTab.lookupStr("oauth_token_secret");
        http.setOAuthTokenSecret(requestTokenSecret);

        System.out.println("oauth_token = " + requestToken);
        System.out.println("oauth_token_secret = " + requestTokenSecret);

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

        FileAccess 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.
        String authorizeUrl = "https://us.etrade.com/e/t/etws/authorize";

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

        // Launch the system's default browser navigated to the URL.
        OAuth2 oauth2 = new OAuth2();
        try {
            oauth2.launchBrowser(url);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            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
    }
}