본문 바로가기

카테고리 없음

[RUBY] 페이스북 앱 루비 정보

페이스북과 연동한 웹 개발 방식은 크게 두 종류로 나눌 수 있다. 


* 하나는 기존 웹사이트와 페이스북을 연동하는 페이스북 커넥트 방식의 웹 개발이고, 


* 다른 하나는 페이스북 페이지 안에 사이트를 내장시키는 페이스북 캔버스 애플리케이션(앱) 방식이다. 페이스북 캔버스 앱은 다시 내장 방식으로 아이프레임을 사용하냐 혹은 페이스북에서 제공하는 FBML을 사용하냐에 따라 아이프레임 캔버스와 FBML 캔버스로 나눌 수도 있다.


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



오픈 그래피 API와 OAuth

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

특히 페이스북 자바스크립트 SDK와 FBML의 클라이언트 확장인 XFBML을 이용하게 되면 기존 페이스북 커넥트나 아이프레임 캔버스 방식의 페이스북 앱 성능도 향상시킬 수 있게 되었다.

페이스북 앱 개발 절차

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


  1. 페이스북 개발자 페이지에서 새 App을 추가한다.
  2. 페이스북 자바스크립트 SDK를 페이지에 추가한다.
  3. OAuth 액세스 토큰으로 그래프 API를 액세스한다.
  4. FBML/XFBML, FQL을 적절히 이용한다.

루비/레일스와 페이스북 앱

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

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