Come renderlo estensibile
Per prima cosa dovresti notare che tutte queste API utilizzano lo stesso meccanismo per l'accesso. Tutti usano OAuth per la loro autenticazione. Questo è necessario sfruttare iniziando con una libreria OAuth generale. Non utilizzare le proprie librerie per l'autenticazione, queste saranno inutilizzabili per altri provider. Se si ottiene il blocco di OAuth2 è abbastanza semplice aggiungere più provider.
Ne hai bisogno, sfortunatamente, due, perché Twitter non ha ancora superato il carrozzone OAuth2.
OAuth ha bisogno di te per creare un'interfaccia per la parte che autentica. I token verranno scambiati da server a server. Crea un punto di accesso, in grado di gestire tutte le comunicazioni.
Il token deve essere memorizzato in una tabella separata dal tuo account, questo perché possono essere più token e più profili collegati. Alcuni servizi ti danno due token, uno di questi è un token di aggiornamento.
Ora hai progettato un'interfaccia, che racchiude l'altra funzionalità di cui hai bisogno. Personalmente avrei creato un servizio REST separato per questo. In questo modo puoi facilmente estendere l'autenticazione ad altri posti.
Alcuni servizi usano JSON per comunicare, altri per XML ecc. Per l'utente anteriore è necessario unificarli tutti. Questo è un processo piuttosto doloroso, ma qui è possibile ricavarne alcuni motivi comuni.
Un altro problema qui è che non tutti i servizi forniscono la stessa funzionalità. Ciò può significare che i tuoi servizi non possono fornire l'API completa come specificato. È necessario disporre di una strategia qui, che consente all'applicazione di eseguire il downgrade con garbo.
Tutto ciò ti garantirà la possibilità di aggiungere facilmente nuovi fornitori di terze parti.
Problemi con i token
I token sono limitati nel tempo, quindi hai bisogno di un paio di job cron, che possono controllare se il token è ancora utilizzabile, altrimenti devi cancellarlo. Puoi anche aggiornare un token con questo meccanismo.
Talvolta accade che un utente ritiri il token. Sii pronto per questo.
Archiviazione dati
Se hai questo design, devi pensare ai dati che ti servono. Questo deriva in parte dalla tua interfaccia appena creata. Disegna alcune tabelle per questo e guarda se i dati sono effettivamente recuperabili. Alcuni servizi non ti consentono di acquisire molti dati. Dovresti anche tener conto del fatto che più dati hai bisogno, più alto diventa il messaggio sulla privacy. Quindi sii modesto nei tuoi bisogni, altrimenti gli utenti non lo useranno.
Per ulteriori verifiche, è possibile memorizzare i profili in una tabella separata ma collegata agli utenti. Questo ti fornirà molte più informazioni su qualcuno.
Controlla anche le leggi locali, per alcuni dati hai bisogno di precauzioni extra.
Ultima cosa
Non commettere l'errore se non si crea un account sui propri servizi. Se l'utente viene bannato da Facebook, sarà effettivamente in grado di accedere al servizio. Questa è una situazione che non vuoi creare. Questo è spesso trascurato.