2013-05-23 2 views
2

내 앱에서 Facebook SDK 3.0을 사용하고 있습니다. 페이스 북 샘플에 제공된 세션 로그인 예제를 통해 액세스 토큰, 전자 메일 및 이름과 같은 사용자 세부 정보를 얻을 수 있습니다. 세션 객체를 초기화하고 로그인 페이지 자체에 액세스 토큰, 이메일 및 이름을 가져옵니다. 전자 메일 및 액세스 토큰을 가져 오면 공유 기본 설정에 저장하고 사용자를 홈 활동으로 보내고 활동 스택을 지 웁니다.애플리케이션 전체에서 Facebook 세션 - Android

이제 문제는 사용자가 앱 전체로 이동하여 Facebook 벽에 무언가를 공유 할 수있는 옵션이있는 페이지에 도착한다는 것입니다. 현재로서는 액세스 토큰 만 있습니다. 제 질문은, 지금 어떻게해야합니까? 내 말은, 분명히 사용자가 다시 페이스 북에 로그인하여 벽에 게시하는 것을 원하지 않습니다. 사용자가 버튼을 클릭하면 이야기가 Facebook 벽에 자동으로 공유되기를 원합니다. 어떻게해야합니까? 인 텐트를 통해 세션 객체를 전달해야합니까? 공유 환경 설정에 저장된 액세스 토큰을 사용하여 새 세션을 시작해야하며 어떻게해야합니까?

Facebook SDK 3.0에 관한 많은 질문을 발견했지만 그 중 누구도 내가 원하는 것을 제공하지 못했습니다. 누구든지 그것에 빛을 비춰 줄 수 있겠습니까?

답변

1

사용자가 처음 로그인하는 경우 세션을 만들어야합니다. 세션이 앱에 의해 종료되지 않는 한 사용자는 다시 로그인 할 필요가 없다고 생각합니다. Session.getActiveSession()

+1

세션이 첫 번째 활동에서 열리고 사용자가 인증을 완료하면 사용자를 홈페이지 활동 (두 번째 활동이라고 부름)으로 보내고 첫 번째 활동을 마칩니다(). 사용자가 두 번째 활동에서 Facebook 벽에 무언가를 게시하길 원합니다. 이제 Session.getActiveSession()이 null을 반환하면 어떻게됩니까? –

+1

세션을 복원 할 수 있습니다 :'Session.restoreSession (Context context, TokenCachingStrategy cachingStrategy, Session.StatusCallback 콜백, 번들 번들) ' 세션을 닫을 때까지 작동 할 것입니다 (예 : 로그 아웃 방법) – SPie

+5

답장을 보내 주셔서 감사합니다 . 현재로서는 세션이 null인지 확인하고 있습니다. 다음과 같이 새로운 세션을 여는 중입니다 : 'accesstoken = AccessToken.createFromExistingAccessToken (accessToken, expirationTime, lastRefreshTime, accessTokenSource, permissions); ' 'session = Session .openActiveSessionWithAccessToken (Activity.this, accesstoken, statusCallback); ' 모든 것이 제대로 작동합니다. –

3

액세스 토큰을 명시 적으로 저장하거나 액세스 토큰을 사용하여 세션을 다시 만들 필요가 없으며 SDK가 이미이 작업을 수행합니다!

모든 활동에서 활성 세션을 사용하고 가져온 세션이 null 인 경우 새 활성 세션을여십시오.

활성 세션은 Session 클래스 내에 정적입니다. 즉, 활동이 완료 될 때라도 활동간에 보존됩니다.

사용자가 앱을 이미 승인 한 경우 활성 세션에서 액세스 토큰을 자동로드합니다.