iOS 앱에서 Facebook 인증을 만들 때 주의할 점

전제



공식 SDK 사용
도입 방법은 할애


SDK
URL
비고


Facebook SDK
ぇぺぺrs. 후세보오 k. 코 m / 두 cs / 이오 s
swift 용 SDK도 있습니다 htps : //에서 ゔぇぺぺrs. 후세보오 k. 코 m / cs / su ft



인증 방법



로그인 메소드의 속성에서,
인증 동작을 선택할 수 있으므로 사전에 결정합시다.
FBSDKLoginManager().loginBehavior = .SystemAccount

Facebook SDK


행동
내용


네이티브
Facebook 앱으로 전환하여 인증

브라우저
safari or SFSafariViewController(iOS9~)로 인증

SystemAccount
설정 앱 계정으로 인증


UIWebView로 로그인


iOS9~는 무려 Native(Facebook 앱 경유의 로그인 인증)를 이용할 수 없게 되어 있다.
Instagram도 사용할 수 없게 되었기 때문에 아마 틀림없다.
↓소스
h tp : / / s tac ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 32620002 / 펑세 보오 k ぉ 긴 - 이 오 s 9 - 우우 테오 t - 사후 리? 안수 r b = ゔ ぉ s # b와 p

따라서 SystemAccount를 사용한 로그인과 같은 다른 동작을 사용하여 로그인해야 합니다.

SystemAccount를 이용한 경우의 거동




  • 로그인 메소드를 호출 한 타이밍에 경고를 표시하는 UI가된다
  • 설정 앱에서 Facebook에 로그인하지 않은 경우 SafariViewController가 표시됨
  • Facebook 앱으로 로그인해도 설정 앱이 로그인 상태가되지 않으므로 위의 경우는 충분히 발생할 수 있습니다

  • 구현할 때 주의할 것



    게시 권한과 사용자 데이터 검색 권한으로 로그인 방법이 다릅니다.



    <대처법>
    각 권한에 대해 로그인 처리를 구현해야 합니다.
  • 투고용:logInWithPublishPermissions
  • 데이터 취득용:logInWithReadPermissions

  • 앱에 대한 액세스 여부에 따라 오류를 처리해야 함



    Facebook 앱의 앱 관리 화면에서 액세스 여부를 제어 할 수 있으므로,
    각 권한에 대한 액세스 여부를 결정하고 오류 처리를 수행해야 합니다.



    Facebook에서 앱에 제공하는 권한을 변경할 수 있습니다.

    <대처법>

    token 확인시FBSDKAccessToken.hasGranted 메서드가 Bool 값을 반환하므로 액세스 권한이 있는지 확인할 수 있습니다.
    친구 목록에 대한 액세스 권한을 부여했는지 확인하려면 다음과 같이 하세요 token.hasGranted("user_friends")
    login 시
    login용 메소드의 응답으로, 액세스 거부하고 있는 권한을 취득할 수 있다
    FBSDKLoginManagerLoginResult.declinedPermissions
    

    설정 앱에서 액세스 거부 중일 수 있음



    대처법
    login용 메소드의 응답으로, Error Code=306이 돌아오므로, 앱측에서 경고를 내는 등 적절하게 처리한다

    테스트



    Facebook의 앱 관리 화면
    (htps : //에서 ゔぇぺぺrs. 후세보오 k. 이 m/아 ps/ <앱 ID>/dashboard/)에서,
    테스트 사용자를 만들 수 있기 때문에 해당 계정을 사용합니다.
    잘못해도 자신의 계정은 사용하지 않는다.

    테스트 흐름



    대시 보트의이 버튼에서 테스트 사용자 등록에,



    작성 후.
  • 사용자 ID, 암호 변경
  • 테스트 계정 간의 친구 등록
  • token 얻기

  • 등이 가능



    Graph API 탐색기
    그래서 이전에 얻은 토큰을 사용하여 테스트 사용자의 토큰 정보를 제어 할 수 있습니다.
    예를 들면, 유저가 친구 리스트 취득의 액세스만 거부한 케이스 등 세세한 인증 주위의 테스트를, 간단하게 할 수 있다.



    me/permissions/user_friends의 엔드포인트에 DELET를 요청하는 경우

    요약



    Facebook 로그인 기능을 앱에 구현하기 전에,
  • 로그인 동작
  • 각 권한에 대한 액세스가 거부 된 경우의 동작

  • 결정합시다.

    Facebook이 제공하는 테스트 환경을 효과적으로 활용합시다.

    참고 URL



    Facebook 공식 문서
    ぇぺぺrs. 후세보오 k. 코 m / 두 cs / 이오 s

    도입 방법이 사진 첨부로 알기 ​​쉽게 실려 있습니다
    htp : /// y y p. 하테나 bぉg. 코m/엔트리/2014/05/26/200000

    좋은 웹페이지 즐겨찾기