본문 바로가기
개발/android

페이스북앱이 설치되어 있을때 페이스북 api로 로그인이 안되는 문제

by 매몰 2013. 8. 23.

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);


안드로이드 페이스북 연동을 하시는 분들께서는 저처럼 삽질하지 마시고 위내용을 참고하여 바로바로 진행하세요~


위내용으로 인해 문제를 해결하셨거나 유용한 정보라고 생각되신다면 댓글 한번 달아주셔요~ ㅎㅎ

그리고 퍼가실때는 반드시 출처 남겨주세요~ ㅎㅎ 







 

 매몰: 고영진


 1인 개발자 

     실패만 하고 있어도 꿈을 포기하지 않는 남자. 

     제가 직접 경험하고 습득한 지식을 위주로 올릴게요. 







사업자 정보 표시
주식회사 머리말 | 고영진 | 서울특별시 송파구 중대로 135 서관 10층 (가락동, 아이티벤처타워) | 사업자 등록번호 : 524-88-00727 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2017-서울강남-03941호 | 사이버몰의 이용약관 바로가기