2012-10-30 13 views
6

Ho già autorizzato un utente nella mia applicazione Facebook usando HybridAuth e memorizzato il suo access_token nel mio database.Accesso "offline" con HybridAuth

Giorni dopo, quando l'utente non è in linea, voglio ottenere i suoi nuovi amici di Facebook, utilizzando anche HybridAuth.

Posso "ricreare" quell'utente dal suo access_token per ottenere i suoi amici, inviare notifiche, ecc.?

Grazie!

risposta

7

Ho finalmente trovato un hack che funziona, lo lascio qui per il prossimo ragazzo che lo cerca. Se si assicura di disporre di un token valido per l'utente e l'app, HybridAuth non dovrebbe provare a reindirizzare o restituire eventuali errori

(Sto utilizzando Codeigniter, ma la sua traduzione in "puro" HybridAuth dovrebbe essere semplice:

$token = "GET A TOKEN IN Facebook's API EXPLORER"; 
    $this->load->library('HybridAuthLib'); 
    $this->hybridauthlib->storage()->set("hauth_session.facebook.is_logged_in", 1); 
    $this->hybridauthlib->storage()->set("hauth_session.facebook.token.access_token", $token);   
    $service = $this->hybridauthlib->authenticate('Facebook'); 

    if ($service->isUserConnected()){ 

     $user_profile = $service->getUserProfile(); 
     $contacts = $service->getUserContacts(); 
     $access_token = $service->getAccessToken(); 

     var_dump($user_profile); 
     var_dump($contacts); 
     var_dump($access_token); 

    }else{ 
     echo "something went wrong"; 
    } 
+0

non è vero sovrascrivendo il corrente registrato in gettoni di OAuth dell'utente (ad esempio, la uno che visualizza la pagina del profilo)? O forse stai semplicemente impostando i token di accesso internamente per HybridAut h su cui operare? Il metodo IIRC 'authenticate()' imposta i dati di sessione per l'utente una volta completato - non sta causando buchi di sicurezza MAJOR nella tua app web? Una chiarificazione potrebbe aiutare; Sto affrontando un problema simile. Grazie – Abdulaziz

+0

Lo sto usando in un processo lato server (gestito da cron) che sto usando per pubblicare in modo asincrono le azioni memorizzate in un database, non c'è nessun utente loggato - non è accessibile agli utenti. Se fosse accessibile tramite browser, il comportamento sarebbe quello che stai dicendo – Marc

+0

L'ho usato per funzionare con i token recuperati con l'interfaccia javascript. Funziona anche con il resto dei fornitori social, come, google plus, ecc. Grazie mille per il tuo post. – Lucia

Problemi correlati