android facebook api(sdk)로 로그인 작업을 하다 보면 발생하는 치명적인 문제가 있다
폰안에 페이스북앱이 설치되어 있지 않을때는 로그인 화면으로 웹뷰가 띄어지면서 잘 로그인된다.
하지만 페이스북앱이 설치되어 있을때에는 웹뷰가 아닌 페이스북앱이 실행되면서 로그인이 이루어지는데 여기서 버그인지 아님 원래 그런건지 로그인이 계속 실패한다.
처음에는 내가 잘못 코딩한지 알았는데 예제를 돌려봐도 똑같은 현상이 발생했다.
그래서 몇일동안 삽질끝에 해결책을 찾아내었다^^
해결책은 역시 예제안에 숨어있었다ㅎㅎ 예제중에 SwitchUserSample이라는 프로젝트가 있는데
이 예제에서 로그인 유저를 바꿀때에는 항상 로그인 화면 웹뷰가 뜨면서 잘되는것이다ㅎㅎ
이부분을 집중 분석하여 아래와 같은 해결코드를 작성하였다~
public Session mSession;
mSession = new Session.Builder(this).setTokenCachingStrategy(new SharedPreferencesTokenCachingStrategy(this)).build();
Session.OpenRequest openRequest = new Session.OpenRequest(this);
openRequest.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
openRequest.setRequestCode(Session.DEFAULT_AUTHORIZE_ACTIVITY_CODE);
mSession.openForRead(openRequest);
또한 로그인후 권한설정에서도 아래와 같이 하면 된다...
mPermissions = Arrays.asList("publish_actions", "user_videos", "read_stream", "share_item");
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, mPermissions) .setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO).setDefaultAudience(SessionDefaultAudience.EVERYONE).setRequestCode(Session.DEFAULT_AUTHORIZE_ACTIVITY_CODE);
session.requestNewPublishPermissions(newPermissionsRequest);
안드로이드 페이스북 연동을 하시는 분들께서는 저처럼 삽질하지 마시고 위내용을 참고하여 바로바로 진행하세요~
위내용으로 인해 문제를 해결하셨거나 유용한 정보라고 생각되신다면 댓글 한번 달아주셔요~ ㅎㅎ
그리고 퍼가실때는 반드시 출처 남겨주세요~ ㅎㅎ
'개발 > android' 카테고리의 다른 글
페이스북 안드로이드 sdk로 담벼락 글쓰기... 정리 2가지 (1) | 2014.01.09 |
---|---|
스레드에서 View 변경시 Only the original thread…. 에러 대처법 (0) | 2013.11.25 |
배경 Layout을 손가락 터치로 따라 움직이게 하는 방법 (0) | 2013.10.08 |
큰 배경이미지 사용시 OutOfMemoryError의 확실한 해결법 (12) | 2013.10.04 |
단말기 해상도에 관계없이 항상 같은 크기로 이미지를 보여주고 싶을때 (0) | 2013.08.29 |