이두희씨 강의를 보면 크롤링을 nokogiri라는 젬으로 합니다. 이건 페이지의 HTML소스를 쭉 긁어서 처리하는 방법으로 알고 있는데, 페이스북은 AJAX를 엄청 쓰기 때문에 그런 방법이 소용이 없는 것 같습니다.
한편, 강의에서 - 사이트에서 몰래 계속 긁어가면 손모가지가 불안하니까 - 공식 API(사람들이 그 서비스의 기능을 이용할 수 있도록 해당 서비스에서 제공하는 코드 꾸러미)가 있으면 API를 사용하라는 말도 했던 것 같습니다. 찾아보니까 페이스북은 Graph라는 이름의 자체 API를 가지고 있었고, 전설 속의 어떤 선한 능력자께서 이 API를 루비 온 레일즈에서 사용할 수 있도록 젬을 만들어 두었다고 합니다. 그 젬 이름이 코알라(https://github.com/arsduo/koala)입니다.
코알라의 전체적인 사용법은 해당 github페이지의 위키에 잘 설명되어 있습니다. 하지만 저도 굉장히 헤맸었고, 지금도 제가 신뢰성있게 구현한 게 맞는지는 잘 모르겠습니다. 그래도 그 과정이 매우 재밌었기 때문에, 다들 해보면 도움이 될 거라 생각합니다. :) 실제 대숲도서관 서비스 개발에서는 DB관리인원만 이 부분을 만지면 될 것 같습니다.
전반적인 과정은 이렇습니다.
제가 제대로 이해했는지는 저도 확신이 없어서 이론적으로 틀린 부분이 있을 수 있습니다. 하지만 일단 돌아는가니까 괜찮지 않을까요...