FAQ e risoluzione dei problemi per l'SDK Android di Facebook

FAQ

Su Android 11, puoi aggiungere il blocco queries seguente nell'AndroidMainfest.xml del progetto per risolvere il problema:

<manifest package="com.example.app">
    <queries>
        <provider android:authorities="com.facebook.katana.provider.PlatformProvider" />
    </queries>
    ...
</manifest>

Puoi usare un solo ID app Facebook in più app per Android. Usa lo stesso ID app in un'altra app per l'accesso, la condivisione e altro.

Per i deep link e l'apertura della tua app mediante notifiche o altri mezzi, supportiamo una sola combinazione di nome del pacchetto/nome della classe.

Se desideri il supporto multi-app per i deep link, vedi App Links.

Puoi ignorare le stringhe nell'SDK di Facebook per Android fornendo una traduzione nel tuo file strings.xml per la lingua desiderata.

Il file strings.xml nella directory facebook/res/values/ contiene tutte le stringhe usate dall'SDK. Il nome delle risorse della stringa deve essere autoesplicativo.

Per maggiori informazioni, consulta la Guida degli sviluppatori per Android: Localizing with Resources (Localizzazione tramite risorse).

Puoi scaricare le versioni precedenti dell'SDK nella pagina Download dell'SDK.

Ogni versione dell'SDK di Facebook per Android con la finestra di condivisione nativa dell'emulatore include anche un APK per l'app di Facebook.

Questo APK era incluso nel download dell'SDK fino alla versione 3.14.1. Successivamente è diventato un download separato. Puoi trovare gli APK sulla nostra pagina Download.

Installa l'APK di Facebook sul tuo emulatore o dispositivo Android e testa la finestra di condivisione nativa dalla tua app.

Normalmente le librerie Android possono usare BuildConfig.DEBUG per stabilire se l'app è in modalità debug. Tuttavia, a causa di un bug in Gradle, le librerie Android vengono sempre create con DEBUG impostato su false. Come soluzione alternativa, è disponibile un metodo FacebookSdk.setIsDebugEnabled(boolean) che consente di impostare la modalità debug direttamente dalla tua app. Questa funzione abilita la registrazione del debug dall'SDK.

Inoltre, puoi impostare i comportamenti di registrazione con FacebookSdk.addLoggingBehavior(LogginBehavior) per abilitare la registrazione per diverse categorie di messaggi. Consulta Riferimento dell'SDK per Android, LoggingBehavior.

La finestra di condivisione trasforma le callback in onSuccess e onCancel all'azione di un utente.

  • onSuccess quando l'utente effettua correttamente una condivisione. Inoltre ci sarà un postId nella classe Sharer.Result se l'utente ha fornito le autorizzazioni publish_actions all'app. Se l'utente non ha effettuato l'accesso con Facebook Login, questo metodo verrà chiamato anche in caso di clic su Annulla.
  • onCancel quando qualcuno clicca sul pulsante della finestra di condivisione X o se ha effettuato l'accesso con Facebook Login e ha cliccato su Annulla.

Risoluzione dei problemi

Quando richiedi l'autorizzazione per la pubblicazione, potresti visualizzare l'errore:

  • "Sessione: è stato fatto un tentativo di richiesta di nuove autorizzazioni per una sezione con una richiesta in sospeso" o
  • "Tentativo di autorizzazione con una richiesta in sospeso"

Questo messaggio di errore significa che l'app sta tentando di richiedere nuove autorizzazioni prima che la richiesta precedente sia stata completata. Tutte le richieste di autorizzazioni sono asincrone e non è possibile richiedere nuove autorizzazioni fino a quando la richiesta precedente non è completata.

Vedi i nostri esempi di app forniti con l'SDK come Scrumptious o Hello Facebook per scoprire come chiedere nuove autorizzazioni in diversi passaggi.

Se non ci sono errori nelle registrazioni il motivo probabile è che la richiesta non è mai stata eseguita. Per eseguire GraphRequest, chiama il metodo executeAsync.

Per effettuare l'accesso o usare la finestra di condivisione nativa, devi comunicare a Facebook la chiave che usi per firmare le tue app.

È un hash chiave di tipo SHA-1 della chiave usata per firmare la tua app. Di solito, vengono usate almeno due chiavi diverse, una per sviluppo e debug e una per la pubblicazione. Verifica che siano stati aggiunti entrambi i valori nella pagina delle impostazioni della tua app.

Per maggiori informazioni, consulta Primi passi con l'SDK per Android, Creazione di un hash chiave di sviluppo.

Il motivo più comune è non aver impostato un ContentProvider nel tuo AndroidManifest.xml. Assicurati di averlo aggiunto al tuo file AndroidManifest.xml con il tuo ID app. Consulta Condivisione su Android, Prerequisiti.