Android - Integración de Facebook
Android permite que su aplicación se conecte a Facebook y comparta datos o cualquier tipo de actualizaciones en Facebook. Este capítulo trata sobre la integración de Facebook en su aplicación.
Hay dos formas a través de las cuales puede integrar Facebook y compartir algo desde su aplicación. Estas formas se enumeran a continuación:
- SDK de Facebook
- Intención Compartir
Integrando Facebook SDK
Esta es la primera forma de conectarse con Facebook. Debe registrar su aplicación y luego recibir un ID de aplicación, y luego debe descargar el SDK de Facebook y agregarlo a su proyecto. Los pasos se enumeran a continuación:
Generando firma de aplicación
Debe generar una firma de clave, pero antes de generarla, asegúrese de tener SSL instalado; de lo contrario, debe descargar SSl. Puede descargarse aquí .
Ahora abra el símbolo del sistema y redirija a su carpeta java jre. Una vez que llegue allí, escriba este comando exactamente. Debe reemplazar la ruta entre comillas invertidas con la ruta del almacén de claves que puede encontrar en eclipse seleccionando la pestaña de la ventana y seleccionando la pestaña de preferencias y luego seleccionando la opción de compilación en Android desde el lado izquierdo.
keytool -exportcert -alias androiddebugkey -keystore "your path"
| openssl sha1 -binary | openssl base64
Una vez que la ingrese, se le pedirá la contraseña. Ingrese Android como contraseña y luego copie la clave que se le proporcionó. Se muestra en la imagen a continuación:
Registro de su aplicación
Ahora cree una nueva aplicación de Facebook en developers.facebook.com/apps y complete toda la información. Se muestra a continuación:
Ahora vaya a la sección de la aplicación nativa de Android y complete su proyecto y el nombre de la clase y pegue el hash que copió en el paso 1. Se muestra a continuación:
Si todo funciona bien, recibirá una identificación de aplicación 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 Facebook aquí . Importe esto a eclipse. Una vez importado, haga clic derecho en su proyecto de Facebook y haga clic en Propiedades. Haga clic en Android, haga clic en el botón Agregar y seleccione Facebook SDK como el proyecto. Haga clic en Aceptar.
Creación de la aplicación de inicio de sesión de Facebook
Una vez que todo esté completo, puede ejecutar las muestras, que vienen con el SDK, o crear su propia aplicación. Para iniciar sesión, debe llamaropenActiveSessione implementa su devolución de llamada. Su sintaxis se da a continuación:
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to;2 the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello " + user.getName() + "!");
}
}
});
}
}
}
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 Facebook lo maneje. Simplemente llamaremos a la aplicación de Facebook y pasaremos los datos para compartir. De esta manera, podemos compartir algo en Facebook.
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 Facebook. Crea una aplicación básica que te permite compartir algún texto en Facebook.
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 del archivo de actividad principal modificado MainActivity.java.
package com.example.sairamkrishna.myapplication;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity {
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.
En el siguiente código abc indica el logo de tutorialspoint.com
<?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="Facebook 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
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 simplemente seleccione Facebook de esa lista y luego escriba cualquier mensaje. Se muestra en la imagen a continuación: