Probabilmente c’ un sacco di materiale online su questo argomento, ma
non so da che parte cominciare a cercare.
Cerco spunti, consigli e best-practice su come realizzare (nel caso
specifico, in una Rails app) quelle funzionalit che si trovano su
qualsiasi sito con funzioni social:
dopo la registrazione vorrei dare la possibilit agli utenti di
invitare i propri contatti Facebook, Twitter, etc.
quando uno degli amici Facebook o Twitter di A si registra sulla mia
app, vorrei che A ricevesse una notifica.
Immagino che si possa fare tutto appoggiandosi direttamente alle API dei
vari siti, ma mi domando se non ci sia qualche gemma che faciliti la
vita.
Mi pare che ci sia una gemma che si chiama omnicontacts che potrebbe fare
al caso tuo
c’, ma se quella che penso io prevede che tu inserisca le password
per ogni account, che non ideale.
Io ho risolto con devise, tante classi FooBarAccount e ognuna con un
metodo custom FooAccount#fetch_contacts.
Devi andare ogni volta a cercarti una lib ad hoc per fare fetch dei
contatti ma alla fine conviene, dovresti farlo comunque, perch per
ogni account vorrai applicare regole specifiche (tipo: per gmail
prendi il gruppo “family & friends” per Live prendi “recent” per
facebook gli id pi bassi o quelli che sono nel gruppo “coworkers”,
per twitter quelli che sono mutual follower etc etc).
E queste sono tutte cose custom.
Come best practice in pi: fatti una tabella invites, con campi:
#id - fa felice AR #service - fb, gmail etc #inviter_id - il tuo utente #invitee_machine_identifier - cosa tipo: facebook id numerico, email
come string, twitter handle etc #invitee_human_identifier - cosa tipo: nome & cognome, nickname etc #created_at#updated_at soliti timestamp #template - se cambi il template che usi per l’invito, di modo che ne
tieni traccia e puoi fare stat carine e AB/testing
Questa ti permette di gestire diverse cose tipo,
far vedere all’utente chi ha gi invitato
evitare di spammare troppo
mandare messaggi tipo “il tuo amico X si connesso”
etc etc
Occhio che comunque se fai gli inviti via facebook li puoi fare
sostanzialmente solo client side, quindi devi metterti una callback in
javascript che fa la chiamata al server e gli dice di salvarseli.
In effetti, scandagliando un po’ meglio, ho capito che:
in generale, consentire di invitare amici non sembra far aumentare di
molto l’utenza di un’applicazione e quindi, probabilmente, non conviene
investirci tempo;
Non detto, ma occhio a non fare l’errore marchiano di chiedere di
spammare i propri contatti prima ancora di aver ricevuto un po’ della
‘value proposition’ del tuo servizio!
In effetti, scandagliando un po’ meglio, ho capito che:
in generale, consentire di invitare amici non sembra far aumentare di
molto l’utenza di un’applicazione e quindi, probabilmente, non conviene
investirci tempo;
mandare messaggi tipo “il tuo amico X si connesso” fa bene al morale
dell’utenza (fin quando non violi la privacy)