Facebook Connect: acquisizione dei dati utente con django-profili e django-socialregistration
-
09-10-2019 - |
Domanda
In ogni mio google ricerca ha completamente mi ha lasciato o non c'è quasi tutta la documentazione / tutorial per django-socialregistration . Peccato, perché sembra un'applicazione abbastanza piacevole. Attraverso alcuni tentativi ed errori, sono riuscito a ottenere per lo più in esecuzione sul mio sito.
La mia domanda, utilizzando django-socialregistration Come faccio a chiedere il permesso per il nome completo dell'utente facebook, attuale città e data di nascita e di conservarlo in mio tavolo UserProfile (che è il mio AUTH_PROFILE_MODULE per django- profili) in Django al momento della registrazione? Inoltre, come faccio a postare al muro dell'utente dal Django una volta che il collegamento è fatto?
Al momento, quando si fa clic sul pulsante "Connect with Facebook" il collegamento facebook è fatto, un nuovo utente Django viene creato e l'utente è connesso con l'account Django. Tuttavia, nessun UserProfile si crea e nessun dato profilo facebook viene salvato.
Qualsiasi Facebook Connect guru là fuori vogliono aiutare il pony volo Django a Facebookland?
Impostazioni
- Django 1.2.1
- Python 2.5.2
- django-socialregistration 0.4.2
- django-registrazione 0,7
- django-profili 0.2
"Signore Kind, potete per favore mi aiuti a trovare la magica Facebookland?"
Soluzione
In facebook_js.html è necessario regolare la seguente riga, da oggetti decommentando che è necessario per ottenere da FB:
FB.login(handleResponse/*,{perms:'publish_stream,sms,offline_access,email,read_stream,status_update,etc'}*/);
Poi, in FacebookMiddleware è possibile estrarre i dati dal fb_user , in questo modo:
facebook.GraphAPI(fb_user['access_token']).get_object('me')
Altri suggerimenti
FWIW, ho appena trovato questo pepita moderatamente utile dall'autore app sepolto nella sezione "Problemi" su github:
domanda da "Tolano":
Ho un modello profilo associato con gli utenti, e ogni volta che l'utente viene creato il profilo deve essere creato anche. Dobbiamo creare una nuova visualizzazione un'impostazione personalizzata per questo scopo?
Sto scoprendo diversi problemi perché la documentazione è scarsa. Grazie mille.
risposta da "flashingpumpkin":
Sì. Idealmente si sovrascrivere la vista di configurazione con il vostro. Un metodo più semplice per regolare ciò che viene fatto sulla creazione dell'utente è quello di passare un modulo personalizzato nella vista di impostazione. Farete che sovrascrivendo l'URL standard.
Ecco un altro pepita rilevanti (fonte: http://github.com / flashingpumpkin / django-socialregistration / temi / chiuso # edizione / 7 ) Basta con questi e la pagina diventerà il fatto di documentazione de django-socialregistration;)
domanda da "girasquid":
Forse sto solo perdendo qualcosa, ma mi sono bloccato qui -? C'è un modo per 'collegare' account su altri siti per un utente già esistente
Per esempio, ho già firmato sul sito davvero impressionante, quindi non ho bisogno di firmare di nuovo - ma vorrei collegare il mio account Facebook e Twitter in modo che possa accedere con quelle pure .
C'è un modo per fare questo già? Se non c'è ... come potrei farlo?
risposta da "flashingpumpkin":
Sì, c'è. Basta usare gli stessi tag modello per Facebook Connect come si farebbe per la registrazione. A seconda se l'utente è già loggato o meno creerà solo l'oggetto FacebookProfile e collegarlo al utente esistente - o di creare sia, l'oggetto d'uso e l'oggetto FacebookProfile.
Date un'occhiata qui:
http://github.com/flashingpumpkin/django -socialregistration / blob / master / socialregistration / templates / socialregistration / facebook_button.html e