Primi passi con l'SDK per Android

L'SDK di Facebook per Android è il modo più facile per integrare la tua app per Android con Facebook. Abilita:

  • Facebook Login: consente di autenticare gli utenti con le loro credenziali di Facebook.
  • Account Kit: consente agli utenti di accedere tramite numero di telefono o indirizzo e-mail.
  • Finestre di condivisione e invio: consentono di abilitare la condivisione dei contenuti della tua app su Facebook.
  • App Events: consente di registrare le azioni nella tua app.
  • API Graph: consente di scrivere sull'API Graph e di leggere i relativi contenuti.

La configurazione della tua app per l'uso dell'SDK di Facebook può essere eseguita in due modi:

  • Attenendoti alla sezione Avvio rapido.
  • Configurando il tuo progetto con l'SDK di Facebook.

Avvio rapido

Per ottenere un ID app Facebook, configura le impostazioni della tua app, importa l'SDK di Facebook, clicca sul pulsante sotto e segui le istruzioni online.

Avvio rapido per Android

 

Altre guide:

Configurazione di Android Studio

Per usare l'SDK di Facebook in un progetto, aggiungilo come dipendenza build e importalo.

1. Vai su Android Studio | Nuovo progetto | SDK minimo.

2. Scegli API 15: Android 4.0.3 o versioni successive e crea il tuo nuovo progetto.

3. Dopo aver creato un nuovo progetto, apri your_app | build.gradle.

4. Aggiungi quanto segue alla sezione buildscript { repositories {}} del file build.gradle (Project):

mavenCentral() 

5. Aggiungi quanto segue alla sezione dependencies {} del file build.gradle (module: app) per compilare la versione più recente dell'SDK di Facebook:

Questo oggetto deve essere eliminato. Per maggiori informazioni, contatta Arsenio Locsin.

Quando usi l'SDK di Facebook, le azioni nella tua app vengono registrate e raccolte automaticamente per Facebook Analytics a meno che non disabiliti la registrazione automatica delle azioni. Per maggiori dettagli sul tipo di informazioni raccolte e su come disabilitare la registrazione automatica delle azioni, consulta Registrazione automatica delle azioni nelle app.

6. Crea il progetto. Ora puoi importare com.facebook.FacebookSdk nella tua app.

Aggiunta dell'ID app Facebook

Successivamente, aggiungi l'ID app Facebook alle tue stringhe di progetto e aggiorna il file manifest di Android:

1. Apri il file strings.xml. Esempio di percorso: /app/src/main/res/values/strings.xml.

2. Aggiungi una nuova stringa con il nome facebook_app_id e il valore dell'ID app Facebook.

3. Apri AndroidManifest.xml.

4. Aggiungi un elemento uses-permission al file manifest:

<uses-permission android:name="android.permission.INTERNET"/>

5. Aggiungi un elemento meta-data all'elemento application:

<application android:label="@string/app_name" ...>
    ...
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    ...
</application>

Invio di immagini o video

Se stai condividendo link, immagini o video attraverso l'app Facebook per Android , devi dichiarare anche il FacebookContentProvider nel file manifest.

Aggiungi l'ID app alla fine del valore authorities. Ad esempio, se il tuo ID app Facebook è 1234, la dichiarazione sarà:

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

Uso dell'SDK con ProGuard

Non devi eseguire alcun passaggio aggiuntivo per usare ProGuard per l'SDK di Facebook per Android. Per istruzioni su ProGuard, consulta l'articolo Shrink Your Code and Resources (Riduzione del codice e delle risorse) nel sito per gli sviluppatori Android.

Esecuzione degli esempi di app

Gli esempi seguenti sono parte integrante dell'SDK:

  • HelloFacebookSample: mostra l'accesso al profilo, gli aggiornamenti di stato e il caricamento delle foto.
  • RPSSample: usa la finestra di condivisione nativa, la pubblicazione di Open Graph, gli strumenti di selezione, gli inviti e i deep link.
  • Scrumptious: accesso, richieste, strumenti di selezione, caricamenti delle immagini e pubblicazione di Open Graph.

Puoi fare delle prove con gli esempi importando l'SDK in un progetto Android Studio.

Gli esempi hanno una dipendenza dal progetto anziché una dipendenza dal repository centrale tramite maven central o jcenter. In questo modo, quando una copia locale dell'SDK si aggiorna, gli esempi riportano le modifiche.

Per eseguire rapidamente gli esempi di app, puoi generare hash chiave per i tuoi ambienti di sviluppo. Aggiungili al tuo profilo di sviluppatore di Facebook per gli esempi di app. Keytool, per la generazione degli hash chiave, è incluso con il Java SE Development Kit (JDK) che hai installato durante la configurazione del tuo ambiente di sviluppo. OpenSSL è disponibile per il download da OpenSSL.

Su OS X, esegui:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Su Windows, esegui:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

Ciò genera una stringa di 28 caratteri.

Accedi al sito degli sviluppatori di Facebook. Accedi a Facebook e, usando il menu a discesa in alto a destra, accedi a Impostazioni per gli sviluppatori:

In Impostazioni per gli sviluppatori, seleziona Esempio di app dal menu, aggiungi e salva il tuo hash chiave nel tuo profilo:

Puoi aggiungere più hash chiave se sviluppi con più macchine.

Adesso puoi compilare ed eseguire tutti gli esempi, compresi quelli che usano Facebook Login.

Creazione di un hash chiave di sviluppo

Facebook usa l'hash chiave per autenticare le interazioni tra la tua app e l'app Facebook. Se esegui le app che usano Facebook Login, devi aggiungere l'hash chiave di sviluppo per Android al tuo profilo di sviluppatore di Facebook.

Per la versione dell'app che pubblichi devi inoltre generare e impostare un hash chiave di release.

Sia su OS X che su Windows puoi ottenere un hash chiave generandolo o usando il valore restituito da Settings.getApplicationSignature(Context). Per le istruzioni, vedi Esecuzione degli esempi di app.


Passaggi successivi

Dopo aver installato l'SDK di Facebook per Android e configurato un ID app Facebook, puoi visualizzare:


Configurazione dell'hash chiave di release

Per autenticare lo scambio di informazioni tra la tua app e Facebook, devi generare un hash chiave di release e aggiungerlo alle impostazioni di Android all'interno del tuo ID app Facebook. Senza questa operazione, l'integrazione di Facebook potrebbe non funzionare correttamente quando pubblichi la tua app nello store.

In un passaggio precedente, hai aggiornato le tue Impostazioni per gli sviluppatori di Facebook con gli hash chiave per i tuoi ambienti di sviluppo.

Quando pubblichi la tua app, questa ha generalmente una firma diversa dal tuo ambiente di sviluppo. Inoltre, assicurati di creare un hash chiave di release e aggiungilo alle impostazioni Android per l'ID app Facebook.

Per generare un hash chiave di release, esegui i comandi seguenti su Mac o su Windows sostituendo l'alias della chiave di release e il percorso del tuo keystore. Su OS X, esegui:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Su Windows, usa:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Assicurati di usare la password che hai impostato quando hai creato la chiave di release.

Questo comando deve generare una stringa di 28 caratteri. Copia e incolla questo hash chiave di release nelle tue impostazioni Android dell'ID app Facebook.

Inoltre, devi controllare che le tue impostazioni Android dell'ID app Facebook contengano anche il nome corretto del pacchetto e la classe di attività principale del tuo pacchetto Android.


Uso dell'SDK di Facebook con Maven

Puoi dichiarare la dipendenza da Maven con la versione più recente disponibile dell'SDK per Android:

<dependency>
  <groupId>com.facebook.android</groupId>
  <artifactId>facebook-android-sdk</artifactId>
  <version>PUT_LATEST_VERSION_HERE</version>
</dependency> 

Risoluzione dei problemi relativi agli esempi di app

Se riscontri un problema relativo all'esecuzione di un esempio di app, potrebbe essere collegato all'hash chiave. Potresti visualizzare uno dei seguenti scenari:

  • Viene visualizzata la finestra di dialogo Accedi nativa, ma dopo avere accettato le autorizzazioni l'accesso risulta ancora non effettuato. Il logcat, inoltre, contiene un'eccezione:
12-20 10:23:24.507: W/fb4a:fb:OrcaServiceQueue(504):
com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id
  • Viene visualizzata una finestra di dialogo Accedi non nativa con un messaggio di errore: "..L'app non è configurata correttamente per Facebook Login...".

Controlla l'hash chiave e assicurati di usare quello corretto. I

Inoltre, puoi modificare manualmente l'esempio di codice per usare l'hash chiave corretto. Ad esempio, nella classe HelloFacebookSampleActivity apporta una modifica temporanea a onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }
    
    ...

Salva le modifiche ed esegui di nuovo l'esempio. Controlla l'output del logcat per trovare un messaggio simile a questo:

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

Salva l'hash chiave nel tuo profilo di sviluppatore. Esegui di nuovo gli esempi e verifica di riuscire ad accedere correttamente.