Android - Integración de Twitter

Android permite que su aplicación se conecte a Twitter y comparta datos o cualquier tipo de actualización en Twitter. Este capítulo trata sobre la integración de Twitter en su aplicación.

Hay dos formas de integrar Twitter y compartir algo de su aplicación. Estas formas se enumeran a continuación:

  • SDK de Twitter (Twitter4J)
  • Intención Compartir

Integración del SDK de Twitter

Esta es la primera forma de conectarse con Twitter. Debe registrar su aplicación y luego recibir un ID de aplicación, y luego debe descargar el SDK de Twitter y agregarlo a su proyecto. Los pasos se enumeran a continuación:

Registro de su aplicación

Cree una nueva aplicación de Twitter en dev.twitter.com/apps/new y complete toda la información. Se muestra a continuación:

Ahora, en la pestaña de configuración, cambie el acceso para leer, escribir y acceder a mensajes y guardar la configuración. Se muestra a continuación:

Si todo funciona bien, recibirá una identificación de consumidor con el secreto. Simplemente copie la identificación de la aplicación y guárdela en algún lugar. Se muestra en la imagen a continuación:

Descargando SDK e integrándolo

Descarga el SDK de Twitter aquí . Copie el jar twitter4J en la carpeta libs de su proyecto.

Publicar tweets en la aplicación de Twitter

Una vez que todo esté completo, puede ejecutar las muestras de Twitter 4J que se pueden encontrar aquí .

Para usar Twitter, necesita crear una instancia de un objeto de la clase Twitter. Se puede hacer llamando al método estático getsingleton(). Su sintaxis se da a continuación.

// The factory instance is re-usable and thread safe.
Twitter twitter = TwitterFactory.getSingleton();

Para actualizar el estado, puede llamar al método updateStatus (). Su sintaxis se da a continuación:

Status status = twitter.updateStatus(latestStatus);
System.out.println("Successfully updated the status to [" + status.getText() + "].");

Intención compartida

Intent share se utiliza para compartir datos entre aplicaciones. En esta estrategia, no manejaremos las cosas del SDK, pero dejaremos que la aplicación de Twitter lo maneje. Simplemente llamaremos a la aplicación de Twitter y pasaremos los datos para compartir. De esta manera, podemos compartir algo en Twitter.

Android proporciona una biblioteca de intenciones para compartir datos entre actividades y aplicaciones. Para usarlo como intención de compartir, tenemos que especificar el tipo de intención de compartirACTION_SEND. Su sintaxis se da a continuación:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);

Lo siguiente que debe hacer es definir el tipo de datos que se transmitirán y luego pasar los datos. Su sintaxis se da a continuación:

shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));

Aparte de estos métodos, hay otros métodos disponibles que permiten el manejo de intenciones. Se enumeran a continuación:

No Señor Método y descripción
1

addCategory(String category)

Este método agrega una nueva categoría a la intención.

2

createChooser(Intent target, CharSequence title)

Función de conveniencia para crear una intención ACTION_CHOOSER

3

getAction()

Este método recupera la acción general a realizar, como ACTION_VIEW

4

getCategories()

Este método devuelve el conjunto de todas las categorías en la intención y el evento de escala actual

5

putExtra(String name, int value)

Este método agrega datos extendidos a la intención.

6

toString()

Este método devuelve una cadena que contiene una descripción concisa y legible por humanos de este objeto.

Ejemplo

Aquí hay un ejemplo que demuestra el uso de IntentShare para compartir datos en Twitter. Crea una aplicación básica que te permite compartir texto en Twitter.

Para experimentar con este ejemplo, puede ejecutarlo en un dispositivo real o en un emulador.

Pasos Descripción
1 Utilizará Android Studio para crear una aplicación de Android en un paquete com.example.sairamkrishna.myapplication.
2 Modifique el archivo src / MainActivity.java para agregar el código necesario.
3 Modifique res / layout / activity_main para agregar los componentes XML respectivos
4 Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados

A continuación se muestra el contenido de la modificación MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.ImageView;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class MainActivity extends ActionBarActivity {
   private ImageView img;
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      img=(ImageView)findViewById(R.id.imageView);
      Button b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            Uri screenshotUri = Uri.parse("android.resource://comexample.sairamkrishna.myapplication/*");

            try {
               InputStream stream = getContentResolver().openInputStream(screenshotUri);
            } catch (FileNotFoundException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            }
               sharingIntent.setType("image/jpeg");
               sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
               startActivity(Intent.createChooser(sharingIntent, "Share image using"));
         }
      });
   }
}

A continuación se muestra el contenido modificado del xml res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"
      android:text="Twitter share " />

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />

   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:layout_below="@+id/textView2"
      android:layout_centerHorizontal="true"
      android:src="@drawable/abc"/>

   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Share"
      android:id="@+id/button"
      android:layout_marginTop="61dp"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true" />

</RelativeLayout>

A continuación se muestra el contenido de AndroidManifest.xml archivo.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Intentemos ejecutar su aplicación. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas. Antes de iniciar su aplicación, Android Studio mostrará la siguiente ventana para seleccionar una opción donde desea ejecutar su aplicación de Android.

Seleccione su dispositivo móvil como una opción y luego verifique su dispositivo móvil que mostrará su pantalla predeterminada -

Ahora solo toque el botón y verá una lista de proveedores de acciones.

Ahora solo seleccione twitter de esa lista y luego escriba cualquier mensaje. Se muestra en la imagen a continuación:

Ahora simplemente seleccione el botón de tweet y luego se publicará en su página de Twitter. Se muestra a continuación: