반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함

Facebook Single Sign-On

2012. 1. 20. 07:46 | Posted by 솔웅


이 글은 Implementing Facebook Single Sing-On 으로 올라온 Corona SDK 튜토리얼을 번역한 글입니다.
이번주에 Corona SDK에서 새로 추가된 주요 기능에 대한 튜토리얼은 Game Center Integration, ScrollView Widget, Facebook Single Sign-On 이렇게 세가지 입니다.
오늘 facebook Single Sign-On을 다루면 모두 다 소화하고 가는 거네요.

Implementing Facebook Single Sign-On
Jonathan Beebe

Corona SDK 의 Facebook Single Sign-On 기능은 iOS와 Android 모바일 디바이스에서 가능합니다. (그리고 만들기에 안드로이드 쪽이 사용이 훨씬 간편합니다.)
이 기능은 Corona Build 2011.707 이후 버전에서만 지원 됩니다.
오늘 날짜 기준으로 Corona에서는 Build 2011.704를 무료 배포 버전으로 오픈했기 때문에 유료 구매자가 아니면 707 버전이 공개될 때까지 기다리셔야 됩니다.

***** Your Facebook App

우선 여러분의 앱을 Facebook에 등록해야 합니다.
그러면 여러분은 App ID를 받으실 수 있습니다. 그 이후에 앞으로 진행하는 일들을 하실 수 있습니다.
아래 링크를 따라가서 여러분의 앱을 등록 하세요.

https://developers.facebook.com/apps

저도 이 부분은 등록을 한적이 한번도 없어서요 자세히 설명을 드리지는 못하겠네요.

우선 위 링크로 가면 이 화면이 나옵니다. (facebook에 로그인을 안 했으면 로그인 하라는 화면부터 나올 겁니다.)



Create New App 버튼을 누르면 App Display Name 과 App Namespace를 넣으라는 화면이 나옵니다.

오른쪽에 ?에 마우스를 올려 놓으시면 그게 뭔지 설명이 나옵니다.

그리고 동의란을 체크하고 Continue버튼을 누릅니다.




다시한면 Security Check를 위한 화면이 나오고 해당 텍스트를 입력 한 다음에 submit을 누르면....




이렇게 핸드폰 번호나 신용카드로 인증과정을 사전에 거쳐야 다음 사항을 진행 할 수 있다고 나옵니다.
그 다음 과정은 진행해 보지 않았습니다.
지금 회사라서 주말에 집에서 차근차근 해 봐야겠습니다.

일단 이 과정들을 모두 거쳐서 햅이 등록됐다고 치고 다음 단계를 보겠습니다.


앱이 등록된 후 Native iOS App 이나 Native Android App를 체크해야 합니다.

iOS앱에서는 iOS Bundle ID가 Corona를 빌드한 provisioning profile과 같아야 합니다. 그리고 iPhone App Store ID 란에 여러분의 iTunes App ID를 넣어야 합니다. 여러분의 앱이 iTunesConnect 포탈에 추가 됐으면 여러분의 앱에 App Store ID가 부여 됐을 겁니다. (앱을 업로드하기 이전에도 받을 수 있습니다.)

아직 여러분의 앱이 iTunes App ID가 없다면 다른 iTunes App ID를 쓰셔도 됩니다. 하지만 나중에 앱이 ID를 받게 되면 곧바로 바꾸셔야 합니다.

제대로 된 bundle ID와 정확한 iTunes ID를 입력하는 것은 아주 중요합니다. 그렇지 않으면 여러분 앱에 Facebook을 implementation 하지 못합니다.

***** build.settings
이 부분은 iOS에만 해당 되는 것입니다. 안드로이드용 앱에는 build.settings에 아무것도 할 필요가 없습니다.

iOS는 CFBundleURLTypes키를 넣어야 합니다. 그 안에 CFBundleURLSchemes 키를 넣기 위해서요.
아래 샘플 코드가 있습니다.
settings = {
    iphone = {
        plist = {
            UIApplicationExitsOnSuspend = false,
            CFBundleURLTypes =
            {
                {
                    CFBundleURLSchemes =
                    {
                        "fbXXXXXXXXXXXXXX",
                    }
                }
            }
        }
    }
}
괄호가 너무 복잡하게 돼 있죠? 그냥 이거 복사해서 쓰세요.

디폴트로 UIAppLicationExitsOnSuspend는 기본으로 false로 세팅돼 있습니다.  그래서 이 부분을 명시하지 않아도 false로 세팅됩니다.
위에 굳이 false로 선언한 것은 만약 이것이 false가 아니면 작동하지 않기 때문에 그것을 remind하기 위해 넣었습니다.
"fbXXXXXXXXXXXXXX 부분에 X표시들은 여러분의 Facebook App ID를 넣으셔야 할 부분입니다.
이 CFBundleURLSchemes에 더 많은 URL schemes를 넣으실 수 있습니다.
CFBundleURLSchemes =
{
    "fb1234567890",
    "YourCustomScheme",
    "AndAnotherOne"
}

Test, test, test!
이렇게 세팅하면 facebook 싱글 사인 온 작업을 할 수 있습니다.
하지만 반드시 테스트를 해 보는건 기본이죠.

facebook.login()함수를 call했을 때 Facebook app이 디바이스에 인스톨 돼 있으면 그것이 나올 겁니다. 그리고나서 당신의 앱을 인증하라고 나올 겁니다. (아직 한번도 인증과정을 거치지 않았다면요)
facebook앱이 없다면 웹브라우저가 실행 될 겁니다. 그리고 유저가 로그인 과정을 다 거치면 다시 원래 앱으로 돌아 올 겁니다.
(이 과정에서 UIApplicationExitsOnSuspend 에 false로 선언되어 있어야 제대로 동작합니다.)

자 여기까지가 Facebook Single Sign-On 을 implemation하는 과정입니다.
facebook쪽 등록하는 부분하고 Corona SDK에서 iPhone인 경우 build.setting에 등록하는 부분이 좀 작업을 해야 하네요.
반면에 안드로이드 쪽은 Facebook쪽에만 등록을 시키면 그 다음엔 별다른 세팅 없이 진행 시킬 수 있나 봅니다.

여기까지 완료 됐으면 이제 facebook single sign on 을 할 기본 환경이 갖춰진 것이구요.
이제 여러분이 코딩하면서 facebook을 이용하면 됩니다.


여기를 클릭하시면 위와같이 Corona SDK의 facebook관련 API를 보실 수 있구요.


SampleCode-Networking-facebook으로 가시면 위와같은 샘플 앱이 있습니다.

이 부분은 나중에 자세히 다뤄 보겠습니다.

반응형

Comment

  1. dk 2012.03.19 00:07

    이 부분 좀 어렵네요. (사실은 페이스북 앱 설정을 잘 몰라서 헤맸습니다)
    아이폰 게임 "비쥬얼드" 처럼 페이스북 친구들과 스코어를 경쟁하는 루틴을 만드려고 하고 있는데, 잘 될지 모르겠습니다. ㅎㅎ

    • 솔웅 2012.03.20 06:10 신고

      재밌겠는데요.
      그거 개발하시다가 발견하는 팁 있으면 알려주세요.. ^^
      그리고 막히는 부분 있으면 언제든지 댓글 올려주세요.
      제가 풀던 코로나 SDK에 문의하던 도움을 드릴꼐요.. ^^

      감사합니다.