유스풀패러다임

Published on

Facebook과 연동한 웹 개발 방식은 크게 두 종류로 나눌 수 있다. 하나는 기존의 웹 사이트와 페이스북을 연동하는 Facebook Connect 방식의 웹 개발이고, 다른 하나는 페이스북 페이지 내에 사이트를 내장시키는 Facebook Canvas App 방식이다. Facebook Canvas App은 다시 내장 방식으로 IFrame을 사용하냐 혹은 페이스북에서 제공하는 FBML을 사용하냐에 따라 IFrame Canvas와 FBML Canvas로 나눌 수도 있다.

Facebook은 잘 정리된 개발문서와 개발자 지원 페이지를 제공하고 있고, 또한 위에서 소개한 각각의 개발 방식에 맞춰 여러 종류의 개발 언어로 작성된 SDK를 제공하기 때문에 어떤 개발환경을 사용하든 손쉽게 페이북과 연동되는 웹 애플리케이션/서비스를 개발할 수 있다.

Open Graph API와 OAuth

최근 페이스북은 기존의 REST 방식의 API를 버리고 Open Graph라는 오픈 프로토콜에 기반한 API로 서비스 접근 방식을 변경하였다. 또한 서비스 인증(authentication & authorization)도 오픈 표준인 OAuth2를 채용함으로써 이전보다 훨씬 표준적인 개발 방식으로 접근할 수 있는 길을 열어 놓고 있다.

특히 Facebook JavaScript SDK와 FBML의 클라이언트 확장인 XFBML을 이용하게 되면 기존의 Facebook Connect 이나 IFrame Canvas 방식의 Facebook App의 성능도 향상시킬 수 있게 되었다.

Facebook App 개발 절차

Facebook App의 개발 절차를 간략히 정리하면 아래 단계와 같다. 자세한 내용은 페이스북 개발문서를 참조.

  1. Facebook 개발자 페이지에서 새 App을 추가한다.
  2. Facebook JavaScript SDK를 페이지에 추가한다.
  3. OAuth access_token으로 Graph API를 액세스한다.
  4. FBML/XFBML, FQL을 적절히 이용한다.

루비/레일스와 Facebook App

아쉽게도 아직 페이스북에서 루비/레일스 개발자들을 위한 공식 SDK는 제공하지 않는다. 그렇지만 이미 루비 커뮤니티에서는 페이스북 개발을 지원하는 많은 라이브러리와 도구들이 나와 있다. 대표적인 것은 다음과 같다.

  • Facebooker: Rails 플러그인. 가장 오래되고 사용자 기반이 넓지만 Old REST 방식이며 다소 무겁다는 단점이 있다.
  • Facebooker2: 기존 Facebooker를 새 API에 맞게 리모델링한 것으로, Graph API 라이브러리인 mogli를 기반으로 한다.
  • sinbook: Sinatra 확장 라이브러리. 300줄 정도의 적은 코드로 되어 있으며, Old REST API 방식.
  • Koala: 새 API 기반이며 Connect과 App 개발 모드 모두를 지원한다. 주목할만한 신예 라이브러리.
blog comments powered by Disqus