7
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user 
{ 
    self.profilePictureView.profileID = user.objectID; 
    self.nameLabel.text = user.name; 
    NSLog(@"My ID:%@", user.objectID); 
} 

Próbowałem wydrukować identyfikator użytkownika za pomocą powyższego kodu. I otrzymuję 3176144783XXXXX.Facebook API: Jak uzyskać unikalny identyfikator użytkownika logowania FB? ID z API nie pasuje do "prawdziwego" ID użytkownika w wersji 2.0

Jednak dostałem inny za pomocą tego narzędzia online http://findmyfacebookid.com/. Wynikiem jest 1000042591XXXXX.

Czy ktoś wie różnicę? Dlaczego moja aplikacja i "findmyfacebookid.com" otrzymują inny identyfikator użytkownika dla tego samego użytkownika?

Uwaga: Aby utworzyć własną bazę danych użytkowników, moja aplikacja mobilna musi używać unikalnego identyfikatora FB. Dlatego potrzebuję unikalnego identyfikatora.

+0

Można użyć (applicationId + userid). Proszę spojrzeć [tutaj] (https://stackoverflow.com/a/46987396/5830871)! –

Odpowiedz

25

Od wersji 2.0 interfejsu API Facebook, identyfikatory użytkowników zwracane do aplikacji są ograniczone do aplikacji (np. Każda aplikacja otrzymuje inny identyfikator dla danego użytkownika) - nie można porównać, co ta witryna mówi do użytkownika co otrzymała Twoja aplikacja, gdy zadzwoniłeś pod numer user.objectID, ponieważ są one celowo różnymi ciągami znaków:

Użyj identyfikatora zwróconego do Twojej aplikacji jako identyfikatora dla użytkowników w aplikacji - nie musisz szukać "prawdziwego" lub "starego" ID użytkownika - nie ma powodu, aby trzeba było używać identyfikatora użytkownika podanego dla dowolnego innego identyfikatora aplikacji ID:

Więcej informacji o zmianach z wersji 1.0 do wersji 2.0 znajduje się tutaj: https://developers.facebook.com/docs/apps/upgrading

I identyfikatory aplikacji o zasięgu są szczegółowo omówione tutaj, w tym sposób dla programistów z wieloma aplikacjami do corelate identyfikatory dla użytkowników, którzy korzystają z więcej niż jednego z ich występów: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids

+0

Czy to się nigdy nie zmienia w przypadku logowania użytkownika/wylogowania/zmiany hasła, zmiany informacji o użytkowniku, ....? – Shinichi

+0

Identyfikator jest dla pary '' - nie ma informacji o sesji użytej do jej wygenerowania (w przeciwieństwie do tokenów dostępu) – Igy

+1

Co zrobić, jeśli chcę wykorzystać użytkowników zarejestrowanych w mojej innej aplikacji do tej aplikacji, aby nie musieli rejestrować się dwa razy ? Próbuję wdrożyć własne "Zaloguj się z " i naprawdę tego potrzebuję. –

Powiązane problemy