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

Ho provato a stampare l'id utente utilizzando il codice precedente. E quello che ottengo è 3176144783XXXXX.Facebook API: come ottenere l'ID univoco dell'utente di login FB? L'ID dell'API non corrisponde all'ID utente "reale" nella v2.0

Tuttavia, ho ottenuto uno diverso utilizzando questo strumento online http://findmyfacebookid.com/. Il risultato è 1000042591XXXXX.

Qualcuno sa la differenza? Perché la mia app e "findmyfacebookid.com" ricevono un ID utente diverso per lo stesso utente?

Nota: la mia app mobile deve utilizzare l'ID univoco dell'FB per creare il proprio database utente. Quindi questo è il motivo per cui ho bisogno di un ID univoco.

+0

È possibile utilizzare (applicationID + userId). Si prega di dare un'occhiata [qui] (https://stackoverflow.com/a/46987396/5830871)! –

risposta

25

Dalla v2.0 dell'API di Facebook gli ID utente restituiti alla tua app sono spaziati alla tua app (cioè ogni app riceve un identificatore diverso per ogni dato utente) - non puoi confrontare ciò che quel sito ti sta dicendo cosa ha ricevuto la tua app quando hai chiamato user.objectID perché sono stringhe intenzionalmente diverse

Usa l'ID restituito alla tua app come identificativo per gli utenti nella tua app - non c'è bisogno di cercare e trovare il 'vero' o 'vecchio' ID utente: non c'è motivo per cui tu debba utilizzare l'ID utente assegnato a qualsiasi altro ID app

Ulteriori informazioni a riguardo sono le modifiche dalla v1.0 alla v2.0 qui: https://developers.facebook.com/docs/apps/upgrading

E gli ID app con ambito sono specificamente discussi qui, tra cui un modo per gli sviluppatori con applicazioni multiple per corelate gli ID per gli utenti che utilizzano più di una delle loro applicazioni: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids

+0

Non cambia mai nel caso utente login/logout/cambio password, cambio informazioni utente, ....? – Shinichi

+0

L'ID è per la coppia '' - non ci sono informazioni sulla sessione utilizzate per generarlo (a differenza dei token di accesso) – Igy

+1

Cosa fare se voglio utilizzare gli utenti registrati nella mia altra applicazione in questa applicazione in modo che non debbano registrarsi due volte ? Sto cercando di implementare il mio "Login con " e ho davvero bisogno di questo. –