2

나는 페이스 북 세션 키가이 senario에 사용해야합니다페이스 북의 iOS SDK에서 반환 한 액세스 토큰에서 세션 키를 빼내는 방법은 없습니까?

http://developers.facebook.com/docs/chat/#platauth 그러나, 현재 Facebook iOS SDK은 우리에게이 사건에 대한 충분하지 않은 토큰 액세스를 반환했습니다. 나는 많은 주위 팠 여기에이 질문을 발견 :

http://www.quora.com/Do-the-OAuth2-access-tokens-in-the-new-Facebook-Graph-API-expire

하지만 우리가 가진 액세스 토큰에 유사성이없는 설명하는 형식입니다.

나는 이런 것들에 대해 약간 혼란 스럽습니다.

덧붙여서이 구형 SDK는 세션 키를 직접 제공하기 때문에 old Facebook SDK을 대상으로하는 이전 버전의 iPhone을 체크 아웃했지만이 SDK는 로그인 성공 후 Facebook의 오류 페이지를 항상 표시합니다. 이 SDK가 완전히 사용 중지 된 것 같습니다. 이 질문에 명확하게하려면

, 이것은 (URL에 포함 된) 액세스 토큰 내가 Facebook iOS SDK에서 가져온 것입니다 :

fb193174047373858://authorize/#access_token=IwDbeiWINrotP3JOd1EGoEY7OmOBd2DyV8lh73mutCM.eyJpdiI6IkdKd3BvWlItcWlWRzIwTGYtUkRUVWcifQ.J6qNtSibMmm0yFe2QNHG46jnIUXef3dV-NnbYqXkfrFABjPrgMPQRUeKHJ3GxX1T3nlU7-4P8FUT6dlfwSwHfNJrheTUZIXdd3AlsSRUiUer5xEdFA9IsGEMn6GyHheH9DSr76IeZcBjl-_s4ub3kg&expires_in=0 
+0

10 월 1 일에 예정된 "auth.promoteSession"Facebook API는 해킹을 필요 이상으로 어렵게 만들 것입니다 (이제는 OAuth 2.0 액세스 토큰 만 필요하며 md5 si는 필요하지 않습니다. gnature 계산은 auth 응답을 생성하는 데 필요합니다). 이 문서에서 Facebook의 공식 문서를 찾을 수는 없지만 모든 세부 정보는 다음 질문에서 찾을 수 있습니다. http://facebook.stackoverflow.com/questions/7395284/x-facebook-platform-authentication-with-smack-java- library-using-oauth-2-0 –

답변

3

-ed access_token 프래그먼트를 session_id에 추가합니다. 그러나 다음 설명은 설명 된 수식에서 access_token을 얻는 데 도움이되며 쉽게 세션 ID를 파생시킬 수 있습니다. 희망이 도움이됩니다. 우리가 FBAppAuth 및 SafariAuth 끄면 다음 것, 같은 API의 구현에

- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate; 


: 아이폰 OS SDK 버전 2에서

, 로그인은 페이스 북 클래스에서 다음과 같은 API에 의해 처리됩니다 로그인 대화 상자를 호출하면 반환 된 access_token의 형식은 APP_ID | SESSION_KEY | DIGEST

- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate 
{ 
    [_permissions release]; 
    _permissions = [permissions retain]; 
    _sessionDelegate = delegate; 
    //[self authorizeWithFBAppAuth:YES safariAuth:YES]; 
    [self authorizeWithFBAppAuth:NO safariAuth:NO]; // Turned off FBApp and Safari auth 
} 


반환 access_token은은 (토큰을 인쇄 할 NSLog를 넣어주세요) 페이스 북의 메소드를 호출을 다시 다음 캡처 할 수 있습니다 다음 중단

- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate 


+0

감사합니다. 나는 당신이 단지 facebook에 의해 현재 지원되는 다른 auth method : FBAppAuth, SafariAuth, 그리고 "legacy one"을 지적하고 있다고 생각한다. FBAppAuth 및 SafariAuth 메소드를 비활성화하면 언급 된 로그인 대화 상자와 원하는 토큰 형식으로 되돌아갑니다. 나는 그것이 그것을 올바르게 이해하기를 바란다. –

+0

현재 사용중인 방법은 여기 [legacy REST auth API 사용] (http://www.quora.com/Any-way-to-pull-out-session-key-from-access-token)의 조언을 따르고 있습니다. - Facebook-iOS-SDK에 의해 되돌아 간다.)이 방법은 내가 사용해야하는 방법에 제한이 없다. 거기에 언급 된 몇 가지 전제 조건이 있습니다. 희망이 도움이됩니다. –

+0

이 방법의 문제점은 Single Sign On이 중단된다는 것입니다. – Plumenator

1

현재 FB 액세스 토큰은 다음 형식이 있습니다 ('|'구분자입니다) : || 예를 들어,이 같은 access_token은을 위해 : 146012674543599 | de29194522ad43g16ec2ca9b-612345672은 | kK5HvfSTbJx-x21rMsTyttifij0 세션 키는 다음과 같습니다 de29194522ad43g16ec2ca9b-612345672

건배

난 아직도 FBAppAuth-ED 또는 SafariAuth 변환하는 공식을 해달라고
+1

Facebook에 사용되는 액세스 토큰에는 여러 가지 종류가 있습니까?내가 사용하고 현재 페이스 북의 iOS SDK는이 토큰을 준 : FB {app_id_here} : //authorize/#access_token=IwaaaaaaaaaaaaJOd1EGoEY7OmOBd2DyV8lh73mutCM.eyJpdiI6IkdKd3BvWlItcbbbbbbbbbbbbkRUVWcifQ.J6qNtSibMmm0yFe2QNHG46jnIUXef3dV-NnbYqXkfrFABjPrgMPQRUeKHJ3GxX1T3nlU7-4P8FUT6dlfwSwHfNJrheTUZIXdd3AlsSRUiUer5xEdFA9IsGEMn6GyHheH9DSr76IeZcBjl-_s4ub3kg&expires_in=0. 세션 키를 꺼내려면이 액세스 토큰에 메서드를 적용 할 수 있다고 생각하지 않습니다. 이것이 나의 질문을 명확하게하기를 희망한다. –

관련 문제