Se hai bisogno di aiuto per il tuo Facebook Portal, visita il Centro assistenza Portal.
Per immettere il tuo codice Facebook per dispositivi per accedere a smart TV, fotocamera, stampante e altri dispositivi, visita la Pagina Facebook per dispositivi.
Implementa Facebook Login per i dispositivi per consentire agli utenti di accedere alla tua app o ai tuoi servizi con il proprio account Facebook. Questa funzione consente agli utenti di accedere ai dispositivi con sistemi di immissione e schermi limitati, come smart TV, cornici digitali o dispositivi per l'Internet delle cose.
Con Facebook Login i dispositivi mostrano all'utente un codice alfanumerico da inserire in una pagina Web su PC o smartphone. Inoltre, chi usa la tua app o il tuo servizio può concedere le autorizzazioni. Una volta ottenute, il dispositivo riceve il token d'accesso usato dall'app per le richieste all'API Graph che identificano l'utente e restituiscono le informazioni necessarie per personalizzarne l'esperienza.
Se stai creando un'app per Apple TV, Android TV o Fire TV, devi usare l'SDK di Facebook per tvOS o l'SDK di Facebook per Android.
Questa guida descrive l'integrazione manuale di Accesso ai dispositivi senza usare questi SDK.
Queste linee guida descrivono come progettare un accesso chiaro, sicuro e coerente per dispositivi e servizi.
Per prima cosa, pensa a quando desideri chiedere agli utenti di effettuare l'accesso o di connettersi con Facebook. Per alcuni dispositivi potrebbe essere immediatamente, per altri più tardi.
Per assicurare un'esperienza utente funzionale, affidabile e soddisfacente, crea un pulsante il più possibile simile a quello ufficiale di Facebook Login.
Dal punto di vista visivo:
Ove pertinente, descrivi i vantaggi dell'accesso. Ad esempio, "scopri cosa stanno guardando i tuoi amici" o "vedi le foto degli album di Facebook".
Quando qualcuno clicca sulla call to action, il tuo dispositivo effettua una chiamata all'API di Facebook che restituisce un codice.
Nella tua interfaccia, invita gli utenti a visitare un sito web e a inserire tale codice mostrando loro il messaggio seguente: "Successivamente, visita facebook.com/device (http://facebook.com/device) su computer o smartphone, quindi inserisci questo codice". Mostra l'intero codice ricevuto tramite l'API Device Login di Facebook. Il codice ha una lunghezza compresa tra 6 e 12 caratteri.
Per permettere alle persone di annullare il flusso di accesso ai dispositivi, includi un pulsante Close
o Cancel
. In questo modo puoi reindirizzarli alla schermata di accesso iniziale.
Quando il codice viene visualizzato sullo schermo, il dispositivo chiede all'API Device Login di controllare se qualcuno ha autorizzato l'app. Dopo qualche minuto, se il codice non è stato inserito, l'API Device Login restituisce l'errore code_expired
. Quando il dispositivo riceve l'errore, annulla il flusso di accesso e mostra la call to action nell'interfaccia.
I codici QR possono anche essere generati con il codice utente incorporato nell'URL. Questa operazione può essere effettuata aggiungendo il parametro user_code
all'URL:
https://www.facebook.com/device?user_code=<USER_CODE>
Questo è il flusso visualizzato dagli utenti quando accedono a facebook.com/device su computer o browser mobili. Per prima cosa, visualizzano un campo di testo in cui possono inserire il loro codice:
Dopo aver inserito il codice e cliccato su Continue
, possono scegliere quali autorizzazioni concedere:
Gli utenti capiscono che l'accesso è avvenuto correttamente e visualizzano un messaggio di conferma:
Nell'interfaccia del dispositivo, dovresti mostrare anche un messaggio di conferma. Questo dovrebbe contenere il nome dell'utente e, se possibile, l'immagine del profilo di Facebook.
Mostra la conferma finché l'utente non clicca sul pulsante Continue
. Potrebbe essere necessario inserire il codice tramite un computer che si trova altrove, pertanto concedi agli utenti il tempo necessario per tornare al dispositivo e visualizzare la conferma prima di proseguire.
Dopo aver cliccato su Continue
, l'utente potrà visualizzare sul dispositivo schermate personalizzate.
Gli utenti devono avere la possibilità di uscire dal dispositivo e quest'ultimo non deve memorizzare la loro connessione a Facebook. Per farlo, offri le opzioni Log out from Facebook
o Disconnect from Facebook
nel menu del dispositivo.
Selezionando queste opzioni il dispositivo eliminerà il token d'accesso memorizzato. Se usi un database o un servizio di archiviazione cloud, rimuovilo anche da lì. Non è necessario effettuare una chiamata API per invalidare il token d'accesso.
Quando l'utente si disconnette, il dispositivo mostrerà la call to action iniziale descritta nel passaggio 1.
Facebook Login lavora con i dispositivi che effettuano direttamente le chiamate HTTP su Internet. Di seguito sono riportate le possibili chiamate e risposte API del dispositivo.
Accedi alla dashboard dell'app e imposta Prodotto > Facebook Login > Impostazioni > Accesso dai dispositivi su "Sì".
Quando l'utente clicca sulla call to action Connect to Facebook
o Log in with Facebook
, il dispositivo deve eseguire un POST HTTP a:
POST https://graph.facebook.com/v2.6/device/login access_token=<YOUR_APP_ID|CLIENT_TOKEN> scope=<COMMA_SEPARATED_PERMISSION_NAMES> // e.g. public_profile,user_likes redirect_uri=<VALID_OAUTH_REDIRECT_URL>
Il parametro scope
è facoltativo e deve contenere un elenco separato da virgole di autorizzazioni di accesso, approvate tramite l'analisi degli accessi.
Il CLIENT_TOKEN
è disponibile in Impostazioni dell'app -> Avanzate e deve essere combinato con l'ID app (separato con una barra verticale, |
) per formare l'access_token
completo.
Il parametro redirect_uri
è facoltativo. Quando fornisci un URL, l'utente verrà reindirizzato a esso dopo aver completato l'accesso correttamente. Questo ti consente di far accedere l'utente al sito web della tua app per altre opzioni di gestione dell'account. L'URL deve essere un URL di reindirizzamento OAuth valido come configurato in Impostazioni app -> Avanzate. La risposta viene visualizzata in questo modo:
{ "code": "92a2b2e351f2b0b3503b2de251132f47", "user_code": "A1NWZ9", "verification_uri": "https://www.facebook.com/device", "expires_in": 420, "interval": 5 }
La risposta indica che:
Dopo aver mostrato lo user_code
, il dispositivo deve invitare le persone a visitare verification_uri
tramite PC o smartphone, ad esempio facebook.com/device. Vedi Esperienza utente.
Il dispositivo deve chiedere all'API Device Login di controllare se l'utente ha concesso le autorizzazioni all'app. Usa l'interval
nella risposta alla chiamata descritta nel passaggio 1, che è di 5 secondi. Il dispositivo deve chiedere:
POST https://graph.facebook.com/v2.6/device/login_status access_token=<YOUR_APP_ID|CLIENT_TOKEN> code=<LONG_CODE_FROM_STEP_1> // e.g. "92a2b2e351f2b0b3503b2de251132f47"
La risposta alla chiamata API dipende dal punto del flusso di autorizzazione in cui l'utente si trova. Riceverai un token d'accesso o un oggetto di errore con un sottocodice specifico da analizzare:
Sottocodice di errore | Esempio di risposta | Significato |
---|---|---|
|
| L'utente ha autorizzato correttamente il dispositivo. Il dispositivo ora può usare il valore |
|
| L'utente non ha ancora autorizzato l'app. Continua a inviare le richieste con l'intervallo specificato nella risposta del passaggio 1. |
|
| Il dispositivo invia richieste troppo frequenti. Usa l'intervallo specificato nella prima chiamata API. |
|
| Il codice del dispositivo è scaduto. Annulla il flusso di accesso e reindirizza l'utente alla schermata iniziale. |
Se ricevi un token d'accesso significa che l'utente ha autorizzato correttamente l'app. Continua a usarlo sul dispositivo.
Mostra il nome dell'utente e, se disponibile, un'immagine del profilo per confermare che l'accesso è avvenuto correttamente finché l'utente non cliccherà su Continue
. Per ottenere il nome e l'immagine del profilo, effettua una chiamata API Graph standard:
GET https://graph.facebook.com/v2.3/me? fields=name,picture& access_token=<USER_ACCESS_TOKEN>
La risposta verrà visualizzata come segue:
{ "name": "John Doe", "picture": { "data": { "is_silhouette": false, "url": "https://fbcdn.akamaihd.net/hmac...ile.jpg" } }, "id": "2023462875238472" }
Mostra il nome e l'immagine del profilo finché l'utente non clicca su Continue
nel dispositivo.
Usa i token d'accesso per eseguire altre richieste all'API Graph.
I token d'accesso per il dispositivo possono durare fino a 60 giorni, ma essere invalidati per diversi motivi. Ad esempio, quando l'utente modifica la password di Facebook.
Se il token non è più valido, il dispositivo dovrà eliminarlo dalla memoria. Per ottenerne uno nuovo e valido, l'utente deve ripetere il flusso di accesso descritto nel passaggio 1.
Posso effettuare le richieste nel flusso del dispositivo tramite HTTP?
OAuth 2 richiede TLS/HTTPS.
Posso effettuare le richieste nel flusso del dispositivo con il metodo GET?
Tutte richieste effettuate nel flusso del dispositivo devono essere di tipo POST
.
Come faccio ad aggiornare il token d'accesso per il dispositivo?
I token d'accesso per i dispositivi possono durare fino a 60 giorni.
Se il token non è più valido, il dispositivo dovrà eliminarlo dalla memoria. Per ottenerne uno nuovo e valido, l'utente deve ripetere il flusso di accesso descritto nel passaggio 1.
Per scoprire di più su come aggiornare i token, consulta Token d'accesso.
Quando eseguo una richiesta POST ricevo l'errore Invalid API method
, che succede?
Se, eseguendo una richiesta POST, ricevi questo tipo di errore:
{"error":{"message":"Invalid API method","type":"OAuthException","code":3}}
Potresti dover abilitare Accesso dai dispositivi nella tua app.
Accedi alla dashboard dell'app e imposta Prodotto > Facebook Login > Impostazioni > Accesso dai dispositivi su "Sì".
Il token d'accesso del mio dispositivo non è valido. Cosa posso fare?
Se il tuo token d'accesso non è valido, il dispositivo deve eliminare il token dalla memoria e ottenerne uno nuovo. Per ottenerne uno nuovo e valido, l'utente deve ripetere il flusso di accesso descritto nel passaggio 1.