Come ottenere un token di accesso infinito per la tua app Facebook

0
Share

Qualche tempo fa mi sono imbattuto in una vera e propria impresa con Facebook: ottenere l’approvazione della mia app per poter accedere a funzionalità specifiche della mia pagina. Dopo ben 4 mesi di attesa e continue richieste non ne sono venuto a capo.

Facebook ha introdotto un po’ di tempo fa un nuovo sistema di accesso alle funzioni delle proprie pagine dovuto alla crisi di sicurezza verificatasi proprio con le app che Facebook metteva a disposizione.

Infatti, chiunque può creare un’applicazione su Facebook, il problema è che chiunque poteva accedere alle più disparate informazioni e dirottarle su siti di proprio piacimento. Per evitare tutto ciò, Facebook ha complicato (se non per dire che ora è impossibile) il metodo di approvazione dell’app.

Da quanto ho capito, se la vostra pagina conta pochi mi piace (poche centinaia) allora non perdete tempo e seguite la guida proposta, altrimenti tentate con l’approvazione normale. Se siete qui, allora Facebook vi ha già fatto perdere la pazienza.

Conoscere il problema

Supponiamo che voi avete appena installato il plugin Social Count Plus, e che pur avendo configurato tutto come richiesto dalla documentazione il contatore di Facebook continua a segnare 0, cosa si fa? Di norma si procede nel modo seguente:

  1. Ci si reca sulla Dashboard per sviluppatori Facebook
  2. Si crea una nuova applicazione richiedendo la funzionalità fan_count
  3. Si richiede l’approvazione dell’applicazione

Durante la fase di compilazione dell’approvazione, vi verrà richiesto di inviare uno ScreenCast, che è sostanzialmente un video di spiegazione che serve a far capire a Facebook per quale motivo avete bisogno delle funzionalità richieste, e durante questo video dovrete anche spiegare a cosa serve l’app.

Tutto molto semplice vero? Se non fosse per il fatto che per quanto abili nel video possiate essere, lo ScreenCast vi verrà respinto più e più volte e sapete il perché? Facebook vuole sapere come funzionerà la vostra applicazione che ha bisogno delle funzionalità richieste, il problema è che la vostra app non potrà funzionare senza il token che state richiedendo, quindi il tutto è come un cane che si morde la coda, per riassumere:

  1. La vostra app ha bisogno del token Facebook per funzionare
  2. Richiedete il token a Facebook che a sua volta vi chiede come funziona l’app
  3. L’app non funziona perché ha bisogno del token

Il plugin che ho citato in alto mi riportava l’errore seguente:

"To use ‘Page Public Content Access’, your use of this endpoint must be reviewed and approved by Facebook. To submit this ‘Page Public Content Access’ feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review."

 

Crea il token infinito

In questa guida ti spiego come risolvere il problema creando il tuo token Facebook che ha una validità infinita, in tal modo non dovrai rinnovarlo e preoccuparti per una sua scadenza.

1. Crea la tua app

La prima cosa da fare è creare un’app dalla Dashboard sviluppatori di Facebook. Una volta aperta la pagina, clicca su “Aggiungi una nuova app”:

Ti si aprirà una finestra modale che ti chiederà il nome dell’app, compila tutti i campi e clicca su “Crea ID APP”:

Nel mio caso ho già creato l’app chiamandola “digitalart”.

2. Crea il token di accesso (Metodo 1)

Adesso hai bisogno di ottenere il token di accesso per le API Graph, in tal modo potrai usufruire di tutte le funzionalità messe a disposizione da Facebook. Per creare il token di accesso recati qui. In questa pagina, seleziona l’app che vuoi utilizzare e quindi su “Ricevi token”:

Una volta che avrai ottenuto il token chiamato anche “short lived token” proprio perché ha una durata di 60 giorni, avrai bisogno di trasformarlo in un token infinito. Per renderlo infinito esegui questa chiamata API:

https://graph.facebook.com/vX.X/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token}

NB: Puoi eseguire la chiamata API online su ApiRequest.io, oppure con PostMan, puoi anche usare cUrl.

NB2: Per quanto possa aver scritto questa guida in modo comprensibile, non sono a conoscenza del tuo grado di bravura, quindi non incolparmi se alcuni passaggi sono poco dettagliati, ricordati che questo è un semplice articolo e non posso coprire tutto, per altro c’è Google, o la sezione commenti.

Fai molto attenzione a sostituire i parametri richiesti, tra cui:

  • X.X: Con la versione dell’API da utilizzare, nel mio caso ho usato v3.1, ma sicuramente dopo la scrittura di quest’articolo ne usciranno di più nuove.
  • {app-id}: Rappresenta il riferimento dell’applicazione che avete creato in precedenza, è possibile trovarlo sulla Dashboard sviluppatori di Facebook.
  • {app-secret}: Rappresenta il token segreto dell’app, anche questo è possibile recuperarlo sulla Dashboard sviluppatori di Facebook. Lo trovate su “Impostazioni” -> “Di base” e cliccando su “Chiave segreta”. Probabilmente Facebook vi domanderà una password.
  • {short-lived-token}: È il token generato in precedenza.

La chiamata vi ritornerà il token infinito.

2. Crea il token di accesso (Metodo 2)

Se non volete perdere tempo ad effettuare la chiamata API, ho realizzato uno script in PHP che vi darà il token infinito automaticamente, tutto ciò che dovete fare è fornirgli i campi seguenti:

  • longlivedtoken: il token che avete generato in precedenza
  • pageid: il riferimento della vostra pagina Facebook di cui siete ovviamente admin
<?php

/*Permette di ottenere un token di accesso illimitato per facebook */

$args=[

//Istruzioni: Fornisci i campi richiesti e lancia lo script
    'longlivedtoken'=>'il tuo token',
    'pageid'=>'il riferimento della tua pagina facebook'
];

echo 'TOKEN INFINITO: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
$r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/{$args['pageid']}?fields=access_token&access_token={$args['longlivedtoken']}"));
return $r->access_token;
}
?>

Puoi eseguire questo script sul tuo server APACHE. Se vuoi puoi installare MAMP per avere tutto ciò che ti serve incluso nel pacchetto.

3. Controlla il token

Puoi controllare il token generato su questa pagina. Inserisci il token infinito ottenuto dallo step 2, e controlla la data di scadenza, la schermata sarà simile alla seguente:

Come puoi vedere il token è diventato infinito e non dobbiamo più preoccuparci della sua scadenza.

4. Utilizzare il token

In precedenza avevo fatto l’esempio di Social Count Plus che non funzionava sulle pagine Facebook, per risolvere il problema scaricate il plugin cliccando sul pulsante seguente:

Download “Social Count Plus 3.4.1” Scaricato 378 volte –

quindi modificate il file “class-social-count-plus-facebook-counter.php”, in particolare questa funzione:

public function get_total( $settings, $cache ) {
		if ( $this->is_available( $settings ) ) {
			//$access_token = $this->get_access_token( $settings );
			$access_token = "il tuo token infinito";
			$url = sprintf(
				'%s%s?fields=fan_count&access_token=%s',
				//$this->api_url . '/v2.7/',
				$this->api_url . '/v3.1/',
				sanitize_text_field( $settings['facebook_id'] ),
				$access_token
			);

5. Caricare i file modificati

Puoi avvalerti di un client FTP come FileZilla per aggiornare i file del plugin, in questo modo avrai finalmente risolto il problema del token di accesso per Facebook.

In conclusione

Per qualsiasi domanda o dubbio chiedi pure nei commenti. Purtroppo non mi è possibile coprire tutti i settori richiesti come:

  • MAMP
  • APACHE
  • PHP

Diverrebbe una guida troppo lunga e pesante. A presto!

Autore del blog Digitalart. Programmatore con la passione per i computer, dolci e la cucina in generale. Ama cimentarsi in produzioni grafiche e scrivere articoli interessanti.

Potrebbe piacerti anche...