Among one thousand and one ways to push the graph of social engagement, we suggest integration of Twitter on Android. Considering its tremendous success, we have demonstrated below on how can your App be easily integrated with Twitter. Moreover, the sample also uses App42 Social Service API.
=
Topics Covered
1. How to create an App on Twitter & generate Consumer & Secret-Key
2. How to authenticate Twitter User with your Android App
3. How to show Tweets along with user details
4. How to re-tweet the tweets again
5. How to update your Twitter status using App42 SocialService API
# Running Sample
1. Create a Twitter application to receive required keys
2. Once you have logged in your Twitter account, click on ‘Create button’ to make a new application
3. Find your Consumer Key and Secret Key here in ‘OAuth’ settings option
4. Now, Register with App42 platform
5. Once you are on Quick start page after registration, Create an app
6. If you are already registered, login to AppHQ console and create an app from App Manager Tab
7. Download the project from here and import it in the eclipse
8.Open Constants.java file and make the changes given below
A. Change CONSUMER_KEY with your Consumer key from step 5 at line no 7.
B. Change CONSUMER_SECRET with your Consumer secret from step 5 at line no 8.
C. Change API_KEY and SECRET_KEY that you have received in step 7 or 8 at line number 10 and 11..
9. Here, we are using twitter4j-core-3.0.3.jar for Twitter integration
10. Build your android App and install on any android device
# Design Details:
Authorization With Twitter : To use Twitter API in your android application, you have to authorize the App. As a sample, I have authorized my application in TwitterApp.java file.
1. We require CONSUMER_KEY and CONSUMER_SECRET here.
2. Once your application is authorized , you can use Twitter API directly.
[code java]private void authorizeApp() {
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(Constants.CONSUMER_KEY);
configurationBuilder.setOAuthConsumerSecret(Constants.CONSUMER_SECRET);
Configuration configuration = configurationBuilder.build();
twitter = new TwitterFactory(configuration).getInstance();
try {
requestToken = twitter.getOAuthRequestToken(Constants.CALLBACK_URL);
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(requestToken.getAuthenticationURL()));
this.startActivity(intent);
finish();
} catch (TwitterException e) {
e.printStackTrace();
}
}[/code]
Also Read: How to Integrate Facebook in Your Android App
Handle Authorization callback: After you have authorized, you have to handle callback and save authorization details so that it doesn’t ask you for details again and again.
This is done in TwitterApp.java file.
1. Here, we get Accesstoken that shows that authorization is done.
2. Using this AccessToken, we will get our authToken, authTokenSecert and screenName. We will save these details.
[code java]protected void handleCallback() {
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith(Constants.CALLBACK_URL)) {
String verifier = uri
.getQueryParameter(Constants.IEXTRA_OAUTH_VERIFIER);
try {
AccessToken accessToken = twitter.getOAuthAccessToken(
requestToken, verifier);
Editor e = mSharedPreferences.edit();
e.putString(Constants.PREF_KEY_TOKEN, accessToken.getToken());
e.putString(Constants.PREF_KEY_SECRET,
accessToken.getTokenSecret());
e.putString(Constants.PREF_KEY_USER,
accessToken.getScreenName());
e.commit();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}[/code]
Load Tweet-list: Following method is used to load the user Tweets only if the user is authorized. It takes authToken, authTokenSecert as an argument that are saved in Shared Preferences of android device. This is written in TwitterService.java file.
[code java]void loadTweets(final String twitterToken, final String twitterSecret,
final MyTwitterListener callBack) {
final Handler callerThreadHandler = new Handler();
new Thread() {
@Override
public void run() {
try {
final ArrayList myTweets = getTwitterList(twitterToken,
twitterSecret);
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
callBack.onTweetList(myTweets);
}
});
} catch (final Exception ex) {
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
if (callBack != null) {
callBack.onError(ex.toString());
}
}
});
}
}
}.start();
}[/code]
Build Tweet-list: The function mentioned below makes the Tweet-list along with the desired Tweet information. This function is written in TwitterService.java file.
[code java]private ArrayList getTweets(Twitter twitter) {
ArrayList tweetsList = new ArrayList();
try {
ResponseList response = twitter.getUserTimeline();
for (int i = 0; i < response.size(); i++) {
TwitterInfo tweetInfo = new TwitterInfo();
Status status = response.get(i);
tweetInfo.setText(status.getText());
tweetInfo.setCreatedAt(status.getCreatedAt());
tweetInfo.setCount(status.getRetweetCount());
tweetInfo.setName(status.getUser().getName());
tweetInfo.setPicurl(status.getUser().getProfileImageURL());
tweetsList.add(tweetInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
return tweetsList;
}[/code]
Update Twitter Status: Using App42 SocialService API,
we can easily update our Twitter Status.
This is written in TwitterService.java file.
[code java]void upDateStatus(final String userName, final String twitterToken,
final String twitterSecret, final String status,
final MyTwitterListener callBack) {
final Handler callerThreadHandler = new Handler();
new Thread() {
@Override
public void run() {
try {
Social socialObj = socialService.linkUserTwitterAccount(
userName, twitterToken, twitterSecret,
Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
socialService.updateTwitterStatus(userName, status);
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
callBack.onStatusUpdate();
}
});
} catch (final Exception ex) {
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
if (callBack != null) {
callBack.onError(ex.toString());
}
}
});
}
}
}.start();
}[/code]
If you have questions or need any further assistance, do write to us at support@shephertz.com.Existen mil y una maneras de impulsar la combinación de aplicaciones junto con redes sociales, recomendamos la integración de Twitter en Android. Considerando su tremendo éxito, a continuación demostraremos como puede su aplicación integrarse fácilmente con Twitter. Además la muestra también usa App42 Social Service API.
1. Como crear una aplicación en Twitter y generar un Consumer & Secret-Key.
2. Como autenticar el usuario de Twitter con su aplicación Android
3. Como mostrar Tweets con otros usuarios
4. Como darle re-tweet los tweets otra vez
5. Como actualizar su estado en Twitter usando App42 SocialService API
# Operar muestras
1. Cree una aplicación de Twitter para recibir las claves necesarias.
2. Una vez ingresado a su cuenta de Twitter, click en ‘Create button’ para hacer una nueva aplicación.
3. Encuentre Consumer Key y Secret Key aquí en ‘OAuth’ opción configuraciones
4. Ahora, regístrese con la plataforma App42
5. Una vez está en la página Quick Start después del registro, cree una aplicación
6. Si ya está registrado, ingrese a la consola AppHQ y cree una aplicación de App Manager Tab
7. Descargue el proyecto desde aquí A. Change CONSUMER_KEY with your Consumer key from step 5 at line no 7. B. Change CONSUMER_SECRET with your Consumer secret from step 5 at line no 8. C. Change API_KEY and SECRET_KEY that you have received in step 7 or 8 at line number 10 and 11..
9. Aquí, usamos twitter4j-core-3.0.3.jar para la integración con Twitter
10. Construya su aplicación de Android e instálela en un dispositivo Android
# Detalles de diseño:
Autorización con Twitter: Para usar API en su aplicación Android, debe autorizar la aplicación. Por ejemplo, tengo que autorizar mi aplicación en el archivo TwitterApp.java.
1. Requerimos CONSUMER_KEY y CONSUMER_SECRET aquí.
2. Una vez su aplicación es autorizada, puede usar Twitter API directamente.
private void authorizeApp() {
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(Constants.CONSUMER_KEY);
configurationBuilder.setOAuthConsumerSecret(Constants.CONSUMER_SECRET);
Configuration configuration = configurationBuilder.build();
twitter = new TwitterFactory(configuration).getInstance();
try {
requestToken = twitter.getOAuthRequestToken(Constants.CALLBACK_URL);
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(requestToken.getAuthenticationURL()));
this.startActivity(intent);
finish();
} catch (TwitterException e) {
e.printStackTrace();
}
}
Gestión de autorización de la retrollamada: Después de haber autorizado, debe gestionar la retrollamada y guardar los detalles de la autorización para que esta no le pida por detalles una y otra vez.
Esto se hace en el archivo de TwitterApp.java
1. Aquí, obtenemos el AccessToken que muestra que la autorización está hecha
2. Usando este AccessToken, obtendremos el authToken, authTokenSecert y ScreenName. Guardaremos estos detalles.
protected void handleCallback() {
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith(Constants.CALLBACK_URL)) {
String verifier = uri
.getQueryParameter(Constants.IEXTRA_OAUTH_VERIFIER);
try {
AccessToken accessToken = twitter.getOAuthAccessToken(
requestToken, verifier);
Editor e = mSharedPreferences.edit();
e.putString(Constants.PREF_KEY_TOKEN, accessToken.getToken());
e.putString(Constants.PREF_KEY_SECRET,
accessToken.getTokenSecret());
e.putString(Constants.PREF_KEY_USER,
accessToken.getScreenName());
e.commit();
} catch (Exception e) {
Log.e(TAG, e.getMessage());
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
Cargar la lista de Twitter: El siguiente método es usado para cargar los Tweets del usuario solamente si el usuario es autorizado. Toma un authToken y authTokenSecert como un argumento que es guardado en Preferencias Compartidas del dispositivo Android. Esto es escrito en el archivo TwitterService.java.
void loadTweets(final String twitterToken, final String twitterSecret,
final MyTwitterListener callBack) {
final Handler callerThreadHandler = new Handler();
new Thread() {
@Override
public void run() {
try {
final ArrayList myTweets = getTwitterList(twitterToken,
twitterSecret);
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
callBack.onTweetList(myTweets);
}
});
} catch (final Exception ex) {
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
if (callBack != null) {
callBack.onError(ex.toString());
}
}
});
}
}
}.start();
}
Construir una lista de Tweets: La siguiente función a mencionada abajo permite que la lista de Tweets este acompañada con información acerca del Tweet. Esta información se encuentra escrita en el archivo TwitterService.java.
private ArrayList getTweets(Twitter twitter) {
ArrayList tweetsList = new ArrayList();
try {
ResponseList response = twitter.getUserTimeline();
for (int i = 0; i < response.size(); i++) {
TwitterInfo tweetInfo = new TwitterInfo();
Status status = response.get(i);
tweetInfo.setText(status.getText());
tweetInfo.setCreatedAt(status.getCreatedAt());
tweetInfo.setCount(status.getRetweetCount());
tweetInfo.setName(status.getUser().getName());
tweetInfo.setPicurl(status.getUser().getProfileImageURL());
tweetsList.add(tweetInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
return tweetsList;
}
Actualizar el estado de Twitter: Usando App42 SocialService API, podemos fácilmente actualizar nuestro estado de Twitter. Esto se encuentra escrito en el archivo TwitterService.java.
void upDateStatus(final String userName, final String twitterToken,
final String twitterSecret, final String status,
final MyTwitterListener callBack) {
final Handler callerThreadHandler = new Handler();
new Thread() {
@Override
public void run() {
try {
Social socialObj = socialService.linkUserTwitterAccount(
userName, twitterToken, twitterSecret,
Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
socialService.updateTwitterStatus(userName, status);
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
callBack.onStatusUpdate();
}
});
} catch (final Exception ex) {
callerThreadHandler.post(new Runnable() {
@Override
public void run() {
if (callBack != null) {
callBack.onError(ex.toString());
}
}
});
}
}
}.start();
}
Si tiene alguna pregunta o más adelante necesita asistencia, escribanos a support@shephertz.com.
Leave A Reply