Domanda

So che posso chiedere:

https://graph.facebook.com/me?access_token=ACCESS_TOKEN 

Ma 'me' che si riferisce alla 'utente attivo', che è presumibilmente l'utente connesso con i tuoi amici su questa macchina che sarebbe il server, ho bisogno che l'utente facebook ai clienti finali ID_utente modo mio server può fare richieste a la GraphAPI per quel utente utilizzando il formato:

https://graph.facebook.com/USER_ID?access_token=ACCESS_TOKEN 
È stato utile?

Soluzione 2

Guardando il codice sorgente del SDK ho trovato che analizzare l'user_id dal token di accesso:

        /*
         * access_token:
         *   1249203702|2.h1MTNeLqcLqw__.86400.129394400-605430316|-WE1iH_CV-afTgyhDPc
         *                                               |_______|
         *                                                   |
         *                                                user id
         */

MA un dovreste avere a che fare questo come invece di richiedere il token vostra applicazione loro dovrebbe reindirizzare alla pagina di destinazione a seguito della quale si ri facebook POST la signed_request con l'access_token e user_id. La documentazione facebook sull'autorizzazione (sembra da allora sono stati aggiornati) quelli a torto detto all'applicazione di richiedere simbolico, ma che è applicabile solo per i siti web non apps. Trovo fastidioso come la documentazione di Facebook continuano a raccontare uno come è semplice ma non riescono a spiegare in modo semplice e ottenere comunque sbagliato ...

Altri suggerimenti

Credo che si sta perdendo i fondamenti del concetto di utente di autenticazione, che non è solo legato a Facebook.

Supponiamo che due utenti A e B domain.com/fb_profile.php visitato, che contiene ( esempio file dal PHP-SDK):

<?php

require '../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'APPLICATION_ID',
  'secret' => 'APPLICATION_SECRET',
  'cookie' => true,
));


$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}

// rest of code

Entrambi registrato con successo, e la pagina ricaricata. Quello che è successo ora è che abbiamo una sessione valida per sia utenti!
E quando il fb_profile.php viene richiesta da parte dell'utente A ( client ) il $facebook->api('/me'); terrà i dettagli "utente attivo" da quella specifica richiesta (client) ! e la macchina ( server ) terrà le sessioni per tutti l'gli utenti registrati!

Così ogni fb_profile.php volta che viene richiesto da un client con una sessione valida, il risultato dell'esecuzione $facebook->api('/me'); sarà collegato a quello specifica sessione da che specifica cliente!

Quindi, che cosa hai detto qui (in grassetto ) è sbagliato:

Ma 'me' che si riferisce alla 'attiva utente' che presumibilmente è l'utente effettuato l'accesso a Facebook su questa macchina che sarebbe il server

E, a proposito, quando si dispone di una sessione valida sia:

$facebook->api('/me');

E

$facebook->api('/USER_ID');

restituirà lo stesso info (, naturalmente, la USER_ID è l'ID dell'utente connesso sul lato client ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top