2013-05-19 9 views
5

Sono solo un po 'confuso su come passare il mio token di accesso in FB.api() quando faccio richieste per cose protette.Devo passare il token di accesso quando utilizzo FB.api()?

Ricevo la mia app per accedere e autenticarsi bene, ma come faccio a utilizzare FB.api() con il token di accesso che ho?

app.accessToken = response.authResponse.accessToken; // This is a valid access token. 

FB.api('/me/friends?access_token='+app.accessToken, {fields: 'name,id,location,picture,installed'}, function(response) { 
    console.log(response); 
}); 

È il modo corretto di passare il token di accesso a FB.api()?

In questo caso, la mia risposta ritorna con il nome, l'id, la posizione, l'immagine degli amici ma non sembra che i dati "installati" siano protetti.

Sto facendo bene?

risposta

4

Non è necessario per passare il token, se l'utente loggato (con FB.login, per esempio). Infatti, utilizzando l'SDK JavaScript (o PHP SDK), non è quasi mai necessario gestire i token di accesso (utente).

Quindi, la chiamata sarebbe solo in questo modo:

FB.api('/me/friends', function(response) { 
    console.log(response); 
}); 

Ottenere informazioni se l'utente installa l'applicazione:

+0

Oh OK. Ho avviato l'intero processo con FB.init() e poi faccio un FB.getLoginStatus(), che chiama FB.api() sopra. Quindi, come mai i dati "installati" non torneranno? Forse non è disponibile in/me/amico endpoint? –

+1

bene, su come ottenere i dati installati, aggiungerò alcuni collegamenti alla mia risposta. – luschn

+1

Sarebbe bello vedere un esempio di come fare ciò che l'OP chiedeva. Ho uno scenario in cui ho bisogno di passare un token di accesso e non riesco a trovare alcun esempio. –

4

Anche se non vedo il motivo per cui alcuni utenti hanno da dire potrebbe non essere necessario passare token di accesso grazie al vostro uso specifico.

In generale, ci sono casi in cui si ha bisogno di passare un token di accesso attraverso FB.api()

Il modo in cui questo viene fatto è passandolo nell'oggetto parametro, come ad esempio:

FB.api('/{fb-graph-node-goes-here}/, { 
    access_token: "TOKEN GOES HERE" 
    //other parameters can go here aswell 

}, function(response) { 
    console.log(response); 
}); 
1

Ecco come l'ho fatto:

Passare access_token come parametro.

FB.api("/me", { access_token : response.authResponse.accessToken }, {fields: ['last_name', 'first_name', 'name']}, 
     function (response) { 
      console.log(response); 
      console.log('Name: ' + response.name); 
     } 
    ); 
Problemi correlati