| [//]: # " Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved. " | |
| [//]: # " " | |
| [//]: # " This program and the accompanying materials are made available under the " | |
| [//]: # " terms of the Eclipse Distribution License v. 1.0, which is available at " | |
| [//]: # " http://www.eclipse.org/org/documents/edl-v10.php. " | |
| [//]: # " " | |
| [//]: # " SPDX-License-Identifier: BSD-3-Clause " | |
| OAuth 1 Client Sample - Twitter Client | |
| ====================================== | |
| This example demonstrates how to develop a simple web app client | |
| utilizing JAX-RS client API and Jersey OAuth support. | |
| Contents | |
| -------- | |
| This example consists of the main class (`App`) and two JAXB beans used | |
| for unmarshaling the responses from Twitter (`Status` and `User`). | |
| Running the Example | |
| ------------------- | |
| ### Registering with Twitter | |
| Before running the example, you have to register your own application | |
| with Twitter (to obtain consumer key and consumer secret you have to use | |
| to configure this client). You can do it as follows: | |
| 1. Go to [Twitter Developers Page](http://dev.twitter.com/). You need | |
| to sign in to the Twitter (if you are new to Twitter you need to | |
| sign up). Then in the right upper corner you will see your profile | |
| photo and drop down list in which you select "My Application". Click | |
| on **Create a new application** button. | |
| 2. Fill out the "Create an application" form - you have to pick a | |
| unique application name (e.g. app12345678), put in some description, | |
| put in something for app website (e.g. http://jersey.java.net), | |
| Accept terms by selecting **Yes, I agree** in "Twitter Content" | |
| checkbox, enter captcha. | |
| 3. Click **Create your twitter application** button. | |
| 4. You will be presented with consumer key, consumer secret and other | |
| details for your registered application. | |
| ### Running for the First Time | |
| Enter the following on the command-line: | |
| > mvn clean compile exec:java -DconsumerKey=<consumer key assigned to your app> -DconsumerSecret=<consumer secret assigned to your app> | |
| ### Subsequent Runs | |
| After you run the application for the first time, it stores the consumer | |
| key, secret and token and token secret in a property file for future | |
| use. So, for subsequent runs you don't have to specify these as system | |
| properties. The following command is good enough for running the | |
| application after it was built, run for the first time and the property | |
| file was created: | |
| > mvn exec:java | |
| Troubleshooting | |
| --------------- | |
| ### HTTP Proxy | |
| Behind a HTTP proxy, you will need to setup the following system | |
| properties to communicate with the Twitter server: | |
| - http.proxyHost - the name of the proxy host. | |
| - http.proxyPort - the port of the proxy host. | |
| - http.proxyAuth - the user name and password to use when connecting | |
| to the proxy; this string should be the user name and password | |
| separated by a colon (e.g., rickhall:mypassword). | |
| These system properties can be set directly on the command line when | |
| starting the JVM using the standard "-D<prop>=<value>" | |
| syntax. |