• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Come fare il login su facebook dalle applicazioni Android

By Giuseppe Maggi | on 11 Ottobre 2016 | 0 Comment
Android

In questo tutorial di programmazione android, iniziamo a discutere la possibilità di far lavorare insieme il Social Network più famoso del mondo ed il sistema operativo mobile più diffuso: rispettivamente, Facebook e Android.
Il colosso dei Social mette a disposizione un vero e proprio SDK per il Robottino Verde che renderà molto veloce l’integrazione delle sue funzionalità all’interno delle nostre app. I primi scopi che ci poniamo in quest’ottica sono la predisposizione di un progetto e le modalità che permettono di effettuare il login dall’interno di un’app.

Preparazione del progetto

Per prima cosa si deve avere a disposizione un account presso la piattaforma on line “Facebook for developers”: è possibile registrarvisi possedendo semplicemente  credenziali di accesso valide a Facebook.
Una volta entrati si dovrà creare una nuova applicazione: con essa ci verrà consegnato un APP Id che la identificherà e potremo procedere ad una serie di configurazioni. Ci verrà chiesto se vogliamo creare un’app iOS, Android o di altro genere.

Per l’ID si dovrà fornire alcuni dati: nome visualizzato dell’app, email di contatto, un identificativo che tipicamente coinciderà con il namespace Java ed una categoria tra quelle elencate.

Fatto ciò passeremo alla configurazione del nostro progetto in Android Studio aggiungendo tra le dipendenze di Gradle il Facebook SDK:

dependencies {
    ...
    ... 
    compile 'com.facebook.android:facebook-android-sdk:4.+'
}

Nel file AndroidManifest.xml dovremo invece aggiungere tre elementi:

  • l’app ID ottenuta nella piattaforma online (salvandolo ad esempio tra le risorse stringa);
  • la dichiarazione della FacebookActivity tra le componenti dell’app tramite la quale eseguiremo il login verso il Social Network;
  • la permission INTERNET che permetterà di accedere alla Rete.

La struttura che il file manifest assumerà sarà, di massima, la seguente:

<manifest ...>

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

    <application ... >
       ...
       ...

        <activity android:name="com.facebook.FacebookActivity"
            android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:label="@string/app_name" />

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

    </application>

</manifest>

Il Facebook Button

Per integrare nella nostra applicazione le funzionalità di Facebook avremo bisogno, per prima cosa, di permettere all’utente di autenticarsi con le proprie credenziali. Quello che faremo sarà attivare la FacebookActivity tramite la quale verranno chieste le credenziali o, se già loggato, ci verrà notificato che l’utente ha già superato la fase di identificazione. Alla chiusura dell’Activity fornita da Facebook, il codice riceverà in un apposito listener la comunicazione relativa e ci sarà possibile conoscere il profilo dell’utente che sta usando la nostra app.

Il modo più familiare all’utente per attivare il meccanismo di accesso alla piattaforma è il Facebook Button, widget che ci viene già fornito dal SDK. Proviamo ad utilizzarlo.
Lo inseriamo nel layout:

<com.facebook.login.widget.LoginButton
        android:id="@+id/fb_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        />

Quello che segue è il codice di una normale Activity che, oltre ai consueti elementi, riesce a gestire un login tramite Facebook Button:

public class MainActivity extends AppCompatActivity {

    private LoginButton fb_Button;
    private CallbackManager callbackManager;

    @Override
        protected void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                FacebookSdk.sdkInitialize(getApplicationContext());
                setContentView(R.layout.activity_main);

                callbackManager = CallbackManager.Factory.create();

                fb_Button = (LoginButton)findViewById(R.id.fb_login);

                fb_Button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Toast.makeText(MainActivity.this, "Login effettuato con successo!", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCancel() {

                    }

                    @Override
                    public void onError(FacebookException e) {
                        Toast.makeText(MainActivity.this, "Errore di accesso!", Toast.LENGTH_SHORT).show();
                    }
                });


            }

        @Override
        protected void onActivityResult(int requestCode, int responseCode, Intent data)
        {
            super.onActivityResult(requestCode, responseCode, data);
            callbackManager.onActivityResult(requestCode, responseCode, data);
        }

    }

Notiamo gli elementi principali:

  • all’inizio del metodo onCreate viene inizializzato il nostro SDK con l’invocazione a FacebookSdk.sdkInitialize(Context);
  • gestiamo il click sul Facebook Button come su un normale pulsante anche se il listener ad esso collegato è più complesso del normale. In caso di login effettuato con successo, verrà invocato il metodo onSuccess;
  • per le attività di login vere e proprie come l’inserimento delle credenziali Facebook o la notifica che l’utente risulta già loggato verrà invocata la FacebookActivity alla cui uscita il controllo passerà per il metodo onActivityResult.

Chi ha fatto login?

Se con il Facebook Button gestiamo in maniera comoda il login di un utente, la priorità nell’immediato proseguimento del lavoro consiste nel conoscere i dati di colui che ha effettuato l’accesso. Allo scopo esiste la classe Profile, finalizzata a gestire i dati di accesso degli utenti. Mette a disposizione una serie di metodi come getFirstName(), getLastName() e getLinkUri() che permettono di accedere a nome, cognome o link della pagina Facebook dell’utente.

Si può ottenere un riferimento al profilo attuale mediante l’invocazione:

Profile profile=Profile.getCurrentProfile();

Per seguire gli accessi alla nostra app tramite Facebook si può fare uso della classe ProfileTracker che ci avviserà di ogni login/logout che si verifica:

ProfileTracker profileTracker=new ProfileTracker() {
                    @Override
                    protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
                        Toast.makeText(MainActivity.this, "Errore di accesso!", Toast.LENGTH_SHORT).show();
                    }
                };

                profileTracker.startTracking();

Il frammento di codice qui mostrato può essere collocato nell’onCreate dell’Activity ed il metodo onCurrentProfileChanged() verrà invocato ad ogni cambio di accesso: il parametro oldProfile sarà non nullo in caso di logout mentre il currentProfile sarà non nullo in caso di avvenuto login.

Conclusioni

Quanto abbiamo visto in questa lezione mostra i due passi fondamentali per l’utilizzo della piattaforma Facebook in un’app Android: predisposizione del progetto e accesso alla piattaforma Social mediante le credenziali in possesso dell’utente. Da qui, nei prossimi tutorial di questo sito, muoveremo verso nuove attività che permetteranno di interagire in maniera attiva con la piattaforma.

Share this story:
  • tweet

Tags: android tutorialcreare app androidlogin facebook app androidprogrammatori AndroidTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Android app con database interno: guida passo passo

    27 Novembre 2017 - 2 Comments
  • Come caricare i dati in modo asincrono usando i Loader nello sviluppo di applicazioni Android

    31 Agosto 2016 - 0 Comment
  • Android Fingerprint API

    28 Giugno 2016 - 0 Comment

Author Description

No Responses to “Come fare il login su facebook dalle applicazioni Android”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO