Come renderlo estensibile
Per prima cosa dovresti notare che tutti questi API usano lo stesso meccanismo per accedere. Tutti usano OAuth per la loro autenticazione. Questo è necessario sfruttare a partire da una libreria OAuth generale. Non utilizzare le proprie librerie per l'autenticazione, queste saranno inutilizzabili per altri provider. Se riesci a capire OAuth2, è abbastanza facile aggiungere altri provider.
Sfortunatamente ne servono due, perché Twitter non ha ancora saltato il carrozzone OAuth2.
OAuth ha bisogno che tu crei un'interfaccia per la parte di autenticazione. I token verranno scambiati da server a server. Crea un punto di ingresso, in grado di gestire tutte le comunicazioni.
Il token deve essere archiviato in una tabella separata dal tuo account, perché possono essere più token e più profili collegati. Alcuni servizi offrono due token, uno di questi è un token di aggiornamento.
Ora si progetta un'interfaccia, che incapsula le altre funzionalità necessarie. Personalmente imposterò un servizio REST separato per questo. In questo modo è possibile estendere facilmente l'autenticazione ad altri luoghi.
Alcuni servizi utilizzano JSON per comunicare, altri vanno per XML, ecc. Per l'utente principale è necessario unificarli tutti. Questo è un processo piuttosto doloroso, ma qui è possibile ricavare alcuni motivi comuni.
Un altro problema qui è che non tutti i servizi offrono 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 il downgrade grazioso dell'applicazione.
Tutto ciò garantirà la possibilità di aggiungere facilmente nuovi fornitori di terze parti.
Problemi di token
I token sono limitati nel tempo, quindi è necessario un paio di processi cron, che possono verificare se il token è ancora utilizzabile, altrimenti è necessario eliminarlo. Puoi anche aggiornare un token con questo meccanismo.
A volte capita che un utente ritiri il token. Sii pronto per questo.
Archivio dati
Se hai questo design, devi pensare ai dati di cui hai bisogno. Ciò deriva in parte dalla tua interfaccia appena creata. Progettare alcune tabelle per questo e verificare 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ù diventano pesanti i messaggi sulla privacy. Quindi sii modesto nelle tue esigenze, altrimenti gli utenti non lo useranno.
Per un'ulteriore verifica, è possibile memorizzare i profili in una tabella separata ma collegata ai propri utenti. Questo ti fornirà molte più informazioni su qualcuno.
Controlla anche le leggi locali, per alcuni dati sono necessarie ulteriori precauzioni.
Ultima cosa
Non commettere l'errore se non si crea un account sui propri servizi. Se l'utente viene bannato da Facebook, non sarà effettivamente in grado di accedere al tuo servizio. Questa è una situazione che non vuoi creare. Questo è spesso trascurato.