Jak sprawić, by był rozszerzalny
Najpierw powinieneś zauważyć, że wszystkie te api używają tego samego mechanizmu do logowania. Wszystkie używają OAuth do uwierzytelnienia. Musisz to wykorzystać, zaczynając od ogólnej biblioteki OAuth. Nie używaj własnych bibliotek do uwierzytelniania, będą one bezużyteczne dla innych dostawców. Jeśli wiesz, jak działa OAuth2, dość łatwo jest dodać więcej dostawców.
Potrzebujesz niestety dwóch z nich, ponieważ Twitter wciąż nie przeskoczył modemu OAuth2.
OAuth wymaga utworzenia interfejsu dla strony uwierzytelniającej. Tokeny zostaną wymienione między serwerami. Utwórz jeden punkt wejścia, który może obsłużyć całą komunikację.
Token powinien być przechowywany w oddzielnej tabeli od konta, ponieważ może to być wiele tokenów i wiele połączonych profili. Niektóre usługi dają dwa tokeny, jeden z nich to token odświeżania.
Teraz projektujesz interfejs, który zawiera inne potrzebne funkcje. Osobiście skonfigurowałbym do tego osobną usługę REST. W ten sposób możesz łatwo rozszerzyć uwierzytelnianie na inne miejsca.
Niektóre usługi używają JSON do komunikacji, inne używają XML itp. Dla użytkownika głównego musisz je wszystkie zunifikować. Jest to dość bolesny proces, ale można tu wyciągnąć pewne wspólne podstawy.
Innym problemem jest to, że nie wszystkie usługi zapewniają tę samą funkcjonalność. Może to oznaczać, że Twoje usługi nie mogą zapewnić pełnego interfejsu API, jak określono. Musisz mieć tutaj strategię, która pozwoli z wdziękiem obniżyć aplikację.
Wszystko to zapewni łatwe dodawanie nowych zewnętrznych dostawców usług.
Problemy z tokenami
Tokeny są ograniczone w czasie, dlatego potrzebujesz kilku zadań cron, które mogą sprawdzić, czy token jest nadal użyteczny, w przeciwnym razie musisz go usunąć. Możesz także odświeżyć token za pomocą tego mechanizmu.
Czasami zdarza się, że użytkownik cofa token. Przygotuj się na to.
Przechowywanie danych
Jeśli masz ten projekt, musisz pomyśleć o potrzebnych danych. Wynika to częściowo z właśnie utworzonego interfejsu. Zaprojektuj w tym celu kilka tabel i sprawdź, czy dane można w rzeczywistości odzyskać. Niektóre usługi nie pozwalają na pobranie dużej ilości danych. Należy również wziąć pod uwagę, że im więcej danych potrzebujesz, tym trudniejsze stają się komunikaty o prywatności. Bądź więc skromny w swoich potrzebach, w przeciwnym razie użytkownicy nie będą go używać.
W celu dodatkowej weryfikacji możesz przechowywać profile w osobnej, ale połączonej tabeli dla użytkowników. Zapewni to znacznie więcej informacji o kimś.
Sprawdź także lokalne przepisy, w przypadku niektórych danych potrzebujesz dodatkowych środków ostrożności.
Ostatnia rzecz
Nie popełniaj błędu, gdy nie tworzysz konta we własnych usługach. Jeśli użytkownik zostanie zablokowany na Facebooku, nie będzie mógł zalogować się do Twojej usługi. Jest to sytuacja, której nie chcesz tworzyć. Jest to często pomijane.