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

위의 코드를 사용하여 사용자 ID를 인쇄하려고했습니다. 그리고 내가 얻는 것은 3176144783XXXXX입니다.Facebook API : FB 로그인 사용자의 고유 ID를 얻는 방법은 무엇입니까? API의 ID가 v2.0의 '실제'사용자 ID와 일치하지 않습니다.

그러나이 온라인 도구 http://findmyfacebookid.com/을 사용하여 다른 도구를 얻었습니다. 결과는 1000042591XXXXX입니다.

차이점을 아는 사람이 있습니까? 내 앱과 'findmyfacebookid.com'이 동일한 사용자에 대해 다른 사용자 ID를받는 이유는 무엇입니까?

참고 : 내 모바일 앱은 내 고유 사용자 데이터베이스를 만들려면 FB 고유 ID를 사용해야합니다. 이것이 내가 유일한 ID를 필요로하는 이유입니다.

+0

(애플리케이션 ID + 사용자 ID). 제발 [여기] (https://stackoverflow.com/a/46987396/5830871)보세요! –

답변

25

Facebook API의 v2.0부터 앱에 반환 된 사용자 ID는 앱으로 범위가 지정됩니다. 즉, 각 앱은 지정된 사용자에 대해 다른 식별자를받습니다. 즉, 해당 사이트가 무엇인지를 비교할 수 없습니다. 의도적으로 다른 문자열이기 때문에 user.objectID을 호출했을 때받은 내용

앱에 반환 된 ID를 앱의 사용자 식별자로 사용하십시오. '실제'또는 '오래된'코드를 찾아 볼 필요가 없습니다. 사용자 ID - 다른 앱 ID에 부여 된 사용자 ID를 사용해야 할 이유가 없습니다.

여기에서 v1.0에서 v2.0으로의 변경 사항에 대한 자세한 내용은입니다.

그리고 응용 범위의 ID는 특별히 앱 중 하나 이상 사용하는 사용자의 ID corelate 여러 앱 개발자를위한 방법을 포함하여, 여기에 설명 : https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids

사용할 수
+0

사용자 로그인/로그 아웃/암호 변경, 사용자 정보 변경 등의 경우 절대로 변경되지 않습니까? – Shinichi

+0

ID는 ''쌍입니다 - 액세스 토큰과 달리 세션 정보를 생성하는 데 사용되는 세션 정보가 없습니다 – Igy

+1

내 다른 응용 프로그램에 등록 된 사용자를이 응용 프로그램에 활용하여 두 번 등록 할 필요가 없으면 어떻게합니까? ? 나는 내 자신의 "으로 로그인"을 구현하려고 노력하고 있으며 실제로 이것을 필요로합니다. –