2012-08-28 18 views
8

Obiettivo principale: come posso ottenere un token di accesso con validità illimitata per un'app per Facebook?Come ottenere un token di accesso di Facebook di lunga durata?

Informazioni di

Abbiamo un app FB denominata MyApp con il seguente set up:

  • MyApp è autorizzato ad interagire con il nostro facebook app
  • MyApp ha i diritti di accesso per gestire i nostri pagine (manage_pages)
  • MyApp ha accesso a Statistiche (read_insights)

Il nostro obiettivo è quello di estrarre i dati di Insights automaticamente, ad es. una volta ogni notte

Tentativo con OAuth generato applicazione gettone

  1. Get APP_ACCESS_TOKEN appartenente alla myApp

    graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID & client_secret = YOUR_APP_SECRET & grant_type = client_credentials

    esempio di token retribuito: 328467452729456598 | Wn2Gt69Ofg5ySdOGa3TsP2p4R

  2. Usa APP_ACCESS_TOKEN per ottenere PAGE_ACCESS_TOKEN per ogni pagina graph.facebook.com/me/accounts?access_token=APP_ACCESS_TOKEN

  3. Usa PAGE_ACCESS_TOKEN per ottenere della pagina di dati Insights: graph.facebook.com/YOUR_APP_ID/ intuizioni access_token = PAGE_ACCESS_TOKEN

mio problema è che l'APP_ACCESS_TOKEN ricevo dal punto 1 sembra mancare la parte utente del token, con conseguente il seguente errore durante l'esecuzione passo 2:?

"message": "An active access token must be used to query information about the current user.", 
"type": "OAuthException", 
"code": 2500 

Tentativo con gettone recuperato dal Graph Explorer API gettone

Se uso l'APP_ACCESS_TOKEN acquisita attraverso il Graph API Explorer (https://developers.facebook.com/tools/explorer), ottengo un token con la parte utente che è significativamente più lungo. Se utilizzo questo token nei passaggi 2 e 3, ottengo i dati corretti, ma tutti i token sono validi solo per 2 ore e successivamente non posso utilizzarlo per il recupero automatico dei dati di approfondimento.

tentativo di scambio di breve durata gettone per lunga vita gettone

Seguendo la procedura descritta in questa guida: https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token, ho cercato di scambiare una breve durata gettone per periodi più abitato.

Se uso provare a scambiare il token ottenuta dal processo di OAuth, ottengo l'errore:

"message": "No user access token specified", 
    "type": "OAuthException", 
    "code": 1 

Se uso il token ottenuto manualmente dal esploratore grafico nel metodo di scambio, posso ottenere il altri passi per lavorare, ma per quanto tempo dura questo nuovo token? Se il token scade dopo x giorni o dopo qualche altro evento, mi troverei ancora a dover affrontare il problema di ottenere il token iniziale in modo programmatico (al contrario di manualmente ogni da Graph Explorer).

Quindi qualcuno sa come posso ottenere un token di lunga durata, recuperato automaticamente per risolvere questo problema?

Grazie!

+0

Hai bisogno di un token di accesso _utente_ per interrogare '/ me/conti dei, non un token di accesso app. – CBroe

risposta

-1

Nel passaggio 2, è necessario utilizzare l'utente access_token per accedere all'endpoint API /accounts. Non è possibile utilizzare il token di accesso all'app qui.

Che cosa si dovrebbe fare è:

  1. Ottenere token di accesso dell'utente da Facebook
  2. Exchange access_token per una lunga vita di token
  3. chiamata /accounts per ottenere una lunga-live accesso alle pagine del token
  4. Accedere alle informazioni sulla pagina utilizzando il token a vita lunga fino alla scadenza
  5. Ripetere i passaggi da 1 a 4.
  6. sceneggiatura
+0

Intendi il [token utente] dell'app (https://developers.facebook.com/tools/access_token/)? Se è così, c'è un modo per ottenere questo a livello di programmazione? (Sto provando con l'accesso utente – user1597852

+0

Ho detto App 'access_token' non" token utente "Segui le mie istruzioni sopra per ottenere ciò che ti serve a livello di programmazione. Al punto (3), ti do la chiamata API per ottenere access_token per la pagina. Tutto deve essere fatto usando il 'access_token' dell'utente –

+0

Come si fa il passaggio (2)? –

Problemi correlati