Android - Integrazione con Facebook
Android consente alla tua applicazione di connettersi a Facebook e condividere dati o qualsiasi tipo di aggiornamento su Facebook. Questo capitolo riguarda l'integrazione di Facebook nella tua applicazione.
Ci sono due modi attraverso i quali puoi integrare Facebook e condividere qualcosa dalla tua applicazione. Questi modi sono elencati di seguito:
- Facebook SDK
- Intent Share
Integrazione di Facebook SDK
Questo è il primo modo per connettersi con Facebook. Devi registrare la tua applicazione e quindi ricevere un ID applicazione, quindi devi scaricare l'SDK di Facebook e aggiungerlo al tuo progetto. I passaggi sono elencati di seguito:
Generazione della firma dell'applicazione
Devi generare una firma della chiave, ma prima di generarla assicurati di avere SSL installato, altrimenti devi scaricare SSl. Può essere scaricato qui .
Ora apri il prompt dei comandi e reindirizza alla tua cartella java jre. Una volta arrivato lì, digita esattamente questo comando. Devi sostituire il percorso tra virgolette con il percorso del tuo keystore che puoi trovare in eclipse selezionando la scheda della finestra e selezionando la scheda delle preferenze e quindi selezionando l'opzione di costruzione sotto Android dal lato sinistro.
keytool -exportcert -alias androiddebugkey -keystore "your path"
| openssl sha1 -binary | openssl base64
Una volta inserito, ti verrà richiesta la password. Dai ad Android come password e poi copia la chiave che ti è stata data. È mostrato nell'immagine qui sotto -
Registrazione dell'applicazione
Ora crea una nuova applicazione Facebook su developers.facebook.com/apps e inserisci tutte le informazioni. È mostrato di seguito -
Ora passa alla sezione dell'app Android nativa e inserisci il nome del progetto e della classe e incolla l'hash che hai copiato nel passaggio 1. È mostrato di seguito:
Se tutto funziona correttamente, riceverai un ID applicazione con il segreto. Basta copiare l'ID dell'applicazione e salvarlo da qualche parte. È mostrato nell'immagine qui sotto -
Scaricare SDK e integrarlo
Scarica l'SDK di Facebook qui . Importalo in eclipse. Una volta importato, fai clic con il pulsante destro del mouse sul tuo progetto Facebook e fai clic su Proprietà, quindi su Android, fai clic sul pulsante Aggiungi e seleziona Facebook SDK come progetto.
Creazione dell'applicazione di accesso a Facebook
Una volta completato tutto, è possibile eseguire gli esempi forniti con l'SDK o creare la propria applicazione. Per accedere, è necessario chiamareopenActiveSessionmetodo e implementa il suo callback. La sua sintassi è data di seguito:
// 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() + "!");
}
}
});
}
}
}
Condivisione di intenti
La condivisione degli intenti viene utilizzata per condividere i dati tra le applicazioni. In questa strategia, non gestiremo la roba dell'SDK, ma lasceremo che sia l'applicazione Facebook a gestirla. Chiameremo semplicemente l'applicazione Facebook e passeremo i dati da condividere. In questo modo, possiamo condividere qualcosa su Facebook.
Android fornisce una libreria di intenti per condividere i dati tra attività e applicazioni. Per usarlo come intento di condivisione, dobbiamo specificare il tipo di intento di condivisioneACTION_SEND. La sua sintassi è data di seguito:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
La prossima cosa che devi fare è definire il tipo di dati da passare e quindi passare i dati. La sua sintassi è data di seguito:
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));
Oltre a questi metodi, sono disponibili altri metodi che consentono la gestione degli intenti. Sono elencati di seguito:
Suor n | Metodo e descrizione |
---|---|
1 |
addCategory(String category) Questo metodo aggiunge una nuova categoria all'intento. |
2 |
createChooser(Intent target, CharSequence title) Funzione comoda per creare un intento ACTION_CHOOSER |
3 |
getAction() Questo metodo recupera l'azione generale da eseguire, come ACTION_VIEW |
4 |
getCategories() Questo metodo restituisce l'insieme di tutte le categorie nell'intento e l'evento di ridimensionamento corrente |
5 |
putExtra(String name, int value) Questo metodo aggiunge dati estesi all'intento. |
6 |
toString() Questo metodo restituisce una stringa contenente una descrizione concisa e leggibile dall'uomo di questo oggetto |
Esempio
Ecco un esempio che mostra l'uso di IntentShare per condividere dati su Facebook. Crea un'applicazione di base che ti permette di condividere del testo su Facebook.
Per sperimentare questo esempio, puoi eseguirlo su un dispositivo reale o in un emulatore.
Passi | Descrizione |
---|---|
1 | Utilizzerai Android Studio per creare un'applicazione Android con un pacchetto com.example.sairamkrishna.myapplication. |
2 | Modifica il file src / MainActivity.java per aggiungere il codice necessario. |
3 | Modifica res / layout / activity_main per aggiungere i rispettivi componenti XML. |
4 | Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati. |
Di seguito è riportato il contenuto del file di attività principale modificato 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"));
}
});
}
}
Di seguito è riportato il contenuto modificato del file xml res/layout/activity_main.xml.
Nel codice sottostante abc indica il logo di 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>
Di seguito è riportato il contenuto di AndroidManifest.xml file.
<?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>
Proviamo a eseguire la tua applicazione. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Prima di avviare l'applicazione, Android Studio visualizzerà la seguente finestra per selezionare un'opzione in cui si desidera eseguire l'applicazione Android.
Seleziona il tuo dispositivo mobile come opzione, quindi controlla il tuo dispositivo mobile che visualizzerà la schermata predefinita -
Ora tocca il pulsante e vedrai un elenco di provider di condivisione.
Ora seleziona Facebook da quell'elenco e poi scrivi un messaggio. È mostrato nell'immagine qui sotto -