Token d'accesso per le tecnologie di Meta

Un token d'accesso è una stringa opaca che identifica un utente, un'app o una Pagina e può essere usata dall'app per effettuare chiamate API Graph. Inoltre, i token includono informazioni sulla loro scadenza e sull'app che li ha generati. Dati i controlli sulla privacy, la maggior parte delle chiamate API sulle app Meta deve includere un token d'accesso. Esistono vari tipi di token d'accesso per supportare diversi casi d'uso e molteplici metodi per ottenere un token d'accesso.

Tipo di token d'accessoDescrizione

Token d'accesso dell'app

I token d'accesso dell'app vengono usati per leggere e modificare le impostazioni dell'app e sono generati con una chiave segreta di Meta e successivamente utilizzati durante le chiamate per la modifica delle impostazioni dell'intera app. Puoi ottenere un token d'accesso dell'app con una chiamata tra server.

Token client

I token client vengono usati per accedere alle API a livello dell'app e possono essere incorporati nelle app native o desktop per identificare la tua app. Non si tratta di un identificativo della chiave segreta poiché è incorporato nelle app. Il token client si trova nella Dashboard gestione app di Meta.

Token d'accesso della Pagina

I token d'accesso della Pagina vengono usati per leggere, scrivere e modificare i dati appartenenti a una Pagina Facebook. Per ottenere un token d'accesso della Pagina, inizia richiedendo un token d'accesso dell'utente, che poi utilizzerai per ottenere un token d'accesso della Pagina tramite l'API Graph.

Un token d'accesso dell'utente di sistema

I token d'accesso dell'utente di sistema vanno usati se la tua app esegue operazioni programmatiche e automatiche sugli oggetti pubblicitari o sulle Pagine dei tuoi clienti aziendali senza dovere basarsi sugli input dell'utente dell'app o richiedere la riautenticazione in futuro.

Token d'accesso dell'utente

I token d'accesso dell'utente vanno usati se la tua app esegue azioni in tempo reale, in base agli input dell'utente. Sono necessari quando un'app effettua una chiamata API per leggere, modificare o scrivere i dati Facebook di un utente per suo conto. Generalmente, questi token d'accesso si ottengono tramite una finestra di dialogo Accedi ed è necessario che l'utente consenta all'app di ottenerli.

Token d'accesso dell'utente

Ogni piattaforma genera i token d'accesso attraverso diverse API, ma tutte seguono la stessa strategia di base per ottenerli:

Token di breve e lunga durata

I token d'accesso dell'utente possono essere di due tipi: di breve o di lunga durata. Generalmente, i primi durano circa una o due ore, mentre i secondi in media 60 giorni. Queste medie sono solo indicative e possono variare senza preavviso o avere una scadenza anticipata. Scopri di più nella sezione relativa alla gestione degli errori.

I token d'accesso generati all'accesso tramite web sono di breve durata, ma puoi convertirli in token di lunga durata con una chiamata API lato server e la chiave segreta.

Le app mobili che usano gli SDK di Facebook per iOS e Android ricevono per impostazione predefinita token di lunga durata.

Le app con accesso standard all'API Marketing di Facebook che usano token di lunga durata ne ricevono altri privi di scadenza. Questi token non sono invalidati solo in base alla durata, ma possono esserlo per altri motivi. Lo stesso vale per i token d'accesso degli utenti di sistema in Business Manager.

I token sono dotati di portabilità

Una caratteristica importante dei token d'accesso è che sono dotati di portabilità. Tuttavia, Apple non consente lo spostamento dei token ai server. Una volta ottenuti, possono essere usati per effettuare chiamate da un client mobile, un browser web o dal tuo server ai server di Facebook. Se il token è ottenuto su un client, puoi inviarlo al server e usarlo nelle chiamate tra server. Se viene ottenuto attraverso una chiamata al server, puoi inviarlo a un client da cui eseguire le chiamate.

Sposta i token dal client al server in modo sicuro attraverso il protocollo HTTPS, proteggendo gli account degli utenti. Scopri di più sulle implicazioni dello spostamento dei token tra client e server.

Le piattaforme possono usare metodi diversi per avviare il processo e includono funzionalità che consentono di gestire i token d'accesso per conto degli sviluppatori e degli utenti che concedono le autorizzazioni:

Android

L'SDK di Facebook per Android gestisce automaticamente i token d'accesso dell'utente attraverso la classe com.facebook.AccessToken. Scopri di più su come ottenerli implementando Facebook Login per Android. Puoi recuperare i token d'accesso dell'utente esaminando Session.getCurrentAccessToken.

Esempio di codice

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    accessToken = AccessToken.getCurrentAccessToken();
}

iOS

L'SDK di Facebook per iOS gestisce automaticamente i token d'accesso dell'utente attraverso la classe FBSDKAccessToken. Scopri di più su come ottenerli implementando Facebook Login per iOS. Puoi recuperare i token d'accesso esaminando FBSDKAccessToken.currentAccessToken.

Esempio di codice

- (void)viewDidLoad
{
  [super viewDidLoad];
  NSString *accessToken = [FBSDKAccessToken currentAccessToken];
}

JavaScript

L'SDK di Facebook per JavaScript ottiene e usa i token d'accesso dell'utente in automatico attraverso i cookie del browser. Puoi recuperare i token d'accesso dell'utente chiamando FB.getAuthResponse, che nella risposta includerà la proprietà accessToken.

Esempio di codice

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    var accessToken = response.authResponse.accessToken;
  } 
} );

Visita la documentazione sugli SDK Facebook web per un esempio di codice completo.

Web (senza JavaScript)

Se stai creando un'app web senza usare l'SDK di Facebook per JavaScript, sarà necessario generare un token d'accesso durante i passaggi descritti nel documento.

Token d'accesso dell'app

I token d'accesso dell'app sono usati per eseguire richieste alle API di Facebook per conto di un'app, anziché di un utente. In questo modo, puoi modificare i parametri dell'app, creare e gestire gli utenti test o consultare gli insight dell'app.

Limitazioni

Alcuni dati dell'utente normalmente visibili a un'app che esegue la richiesta con un token d'accesso dell'utente non sono sempre disponibili con i token d'accesso dell'app. Se consulti questi dati per sfruttarli nella tua app, usa un token d'accesso dell'utente invece di un token d'accesso dell'app.

Se nelle impostazioni Avanzate della Dashboard gestione app l'app è impostata su Native/Desktop, i token d'accesso dell'app non sono considerati sicuri e non funzioneranno con le chiamate API. Questo poiché supponiamo che le app native o per computer abbiano una chiave segreta integrata (un token d'accesso dell'app generato tramite quella chiave non è sicuro).

Generazione di un token d'accesso dell'app

Per generare un token d'accesso dell'app, hai bisogno dei seguenti elementi:

Esempio di codice

curl -X GET "https://graph.facebook.com/oauth/access_token
  ?client_id={your-app-id}
  &client_secret={your-app-secret}
  &grant_type=client_credentials"

La chiamata restituisce un token d'accesso dell'app che puoi usare al posto di quello dell'utente nelle chiamate API, come descritto sopra. Per motivi di sicurezza, il token d'accesso dell'app non deve avere una codifica fissa nel codice lato client, altrimenti chiunque carichi la tua pagina web o decompili l'app può avere accesso alla chiave segreta e modificare l'app. Questo implica che, per la maggior parte, userai token d'accesso dell'app solo nelle chiamate tra server.

Tieni presente che la richiesta sfrutta la chiave segreta, pertanto non usare un codice lato client o un binario che può essere decompilato. È importante non condividere la chiave segreta con nessuno. Effettua la chiamata API usando esclusivamente un codice lato server.

Esiste un altro metodo per effettuare le chiamate API Graph senza usare un token d'accesso dell'app. Quando effettui una chiamata, puoi semplicemente passare l'ID app e la chiave segreta come parametro access_token:

curl -i -X GET "https://graph.facebook.com/{api-endpoint}&access_token={your-app_id}|{your-app_secret}"   

Scegli se usare un token d'accesso o il metodo appena descritto in base a dove hai nascosto la chiave segreta.

Token d'accesso della Pagina

I token d'accesso della Pagina sono usati nelle chiamate API Graph per gestire le Pagine Facebook. Per generare un token d'accesso della Pagina, un amministratore della pagina deve concedere l'autorizzazione o le autorizzazioni della Pagina necessarie. Quando le autorizzazioni sono state concesse, puoi recuperare il token d'accesso della Pagina utilizzando un token d'accesso dell'utente con le autorizzazioni necessarie.

Esempio di codice

curl -i -X GET "https://graph.facebook.com/{your-user-id}/accounts?access_token={user-access-token}" 

Restituirà un elenco delle Pagine in cui hai un ruolo e altre informazioni su ogni Pagina, come la categoria della Pagina, le specifiche autorizzazioni di cui disponi per quella Pagina e il token d'accesso della Pagina.

{
  "data": [
    {
      "access_token": "EAACEdE...",
      "category": "Brand",
      "category_list": [
        {
          "id": "1605186416478696",
          "name": "Brand"
        }
      ],
      "name": "Ash Cat Page",
      "id": "1353269864728879",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
    {
      "access_token": "EAACEdE...",
      "category": "Pet Groomer",
      "category_list": [
        {
          "id": "163003840417682",
          "name": "Pet Groomer"
        },
        {
          "id": "2632",
          "name": "Pet"
        }
      ],
      "name": "Unofficial: Tigger the Cat",
      "id": "1755847768034402",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT"
      ]
    }
  ]
}

Il token d'accesso di una Pagina ti consente di effettuare chiamate API per conto di una Pagina. Ad esempio, puoi pubblicare un aggiornamento di stato su una Pagina (anziché sul diario dell'utente) o leggere i dati di insight della Pagina.

I token d'accesso della Pagina sono unici per ogni Pagina, amministratore e app.

Token d'accesso del client

A partire dall'SDK v13.0 per iOS e Android, il cui rilascio è previsto all'inizio del 2022, sarà necessario un token client per tutte le chiamate all'API Graph.

Come i token dell'app, i token client effettuano richieste API Graph per conto di app anziché degli utenti.

A differenza di altri token, i token d'accesso del client non possono essere utilizzati da soli nelle richieste, è necessario combinarli con l'ID dell'app. Per farlo, aggiungi il tuo token alla fine dell'ID app, separato da un simbolo di barra verticale (|):

{app-id}|{client-token}

Ad esempio:

access_token=1234|5678

Per ottenere il token d'accesso del client per un'app, esegui le azioni seguenti:

  1. Accedi al tuo account sviluppatore.
  2. Nella pagina App, seleziona un'app per aprire la dashboard specifica.
  3. Nella Dashboard, vai a Impostazioni > Avanzate > Sicurezza > Token client.

Lunghezza del token d'accesso

La lunghezza di tutti i tipi di token d'accesso cambierà nel tempo man mano che Facebook apporta modifiche a ciò che viene memorizzato in essi e al modo in cui sono codificati. Nel tempo, la lunghezza aumenterà e si ridurrà. Utilizza un tipo di dati a lunghezza variabile senza una dimensione massima specifica per memorizzare i token d'accesso.

Per saperne di più