FaceBook
FACEBOOK FQL(Facebook Query Language)를 사용한 팬페이지 LIKE(좋아요) 체크
eqzero
2011. 6. 29. 02:23
요즘 페이스북에 팬페이지를 개설후 많은 이벤트와 홍보 페이지를 작성하고있다.
자연스레 페북의 API를 많이 사용하게 되는데 사용하면 할수록 편하게 잘 만들어놨다는 생각이 든다.
간단한 플러그인부터 FQL, GRAPHI API 등..덕분에 공부할건 더 늘어나는데..;;;
페북 관련 글은 처음 남기는데.. 순서대로라면 뭔가 페북의 사용법과 OAuth부터 시작해야 되겟지만.ㅡㅡa..
일단 내가 얼마전 처리한부분부터 글을 남겨야겠다..;;
얼마전에 팬페이지에 이벤트를 하나 개설했는데 사용자의 like 여부를 체크후에 응모 가능을 판단해달라는 요구사항이 있었다.
페북에선 아래방법으로 팬페이지 "좋아요" 체크기능을 제공해준다.
1. REST API 의 page.isFan
2. FB.api의 pages.isFan 메소드
3. FQL을 통한 page_fan 테이블 조회.
아래 설명한 내용은 위의 3번을 토대로 작성한것이다.
우선 먼저 해야할 작업으론 페북에 APP를 생성해야한다. [개설하기]
이 생성된 APP를 통해 사용자의 정보를 조회할수 있다.
이외에도 FQL을 통해서 각 데이터 테이블을 조회한다면 좀더 쉽게 페북의 데이터들을 조회할수 있다.
참고 : FQL API http://developers.facebook.com/docs/reference/fql/
자연스레 페북의 API를 많이 사용하게 되는데 사용하면 할수록 편하게 잘 만들어놨다는 생각이 든다.
간단한 플러그인부터 FQL, GRAPHI API 등..덕분에 공부할건 더 늘어나는데..;;;
페북 관련 글은 처음 남기는데.. 순서대로라면 뭔가 페북의 사용법과 OAuth부터 시작해야 되겟지만.ㅡㅡa..
일단 내가 얼마전 처리한부분부터 글을 남겨야겠다..;;
얼마전에 팬페이지에 이벤트를 하나 개설했는데 사용자의 like 여부를 체크후에 응모 가능을 판단해달라는 요구사항이 있었다.
페북에선 아래방법으로 팬페이지 "좋아요" 체크기능을 제공해준다.
1. REST API 의 page.isFan
2. FB.api의 pages.isFan 메소드
3. FQL을 통한 page_fan 테이블 조회.
아래 설명한 내용은 위의 3번을 토대로 작성한것이다.
우선 먼저 해야할 작업으론 페북에 APP를 생성해야한다. [개설하기]
이 생성된 APP를 통해 사용자의 정보를 조회할수 있다.
<body> <DIV id=fb-root></DIV> <SPAN id=status> <SCRIPT src="http://connect.facebook.net/ko_KR/all.js#xfbml=1"> <SCRIPT type=text/javascript> FB.init({ appId : '새로 개설한 APP ID', status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true // parse XFBML }); // 회원 로그인 상태체크. FB.getLoginStatus(handleSessionResponse); // like 이벤트가 발생할때 호출된다. FB.Event.subscribe('edge.create', function(response) { document.getElementById("status").innerHTML = "LIKE!!!!"; }); // unlike 이벤트가 발생할때 호출된다. FB.Event.subscribe('edge.remove', function(response) { document.getElementById("status").innerHTML = "UNLIKE!!!!"; }); function handleSessionResponse(response) { // 로그인하지 않았다면 로그인 유도 if (!response.session) { alert("페북 로그인을 해주세요~!"); FB.login(handleSessionResponse); return; } //FQL를 사용 page_fan테이블을 조회하여 현재 사용자의 LIKE 명단에 있는지 조회한다. // page_id 는 팬페이지의 고유ID.. FB.api ( { method: 'fql.query', query: "SELECT uid, page_id, type FROM page_fan "+ "WHERE page_id = ???????????? AND uid= "+FB.getSession().uid }, function(response) { //LIKE 한 사용자가 아니라면 response.length 는 "0"을 반환한다. if( response.length ) { document.getElementById("status").innerHTML = "LIKE!!!!"; } else { document.getElementById("status").innerHTML = "UNLIKE!!!!"; } } ); } </SCRIPT> <fb:like layout="button_count" send="false" href="http://cspark.net"></fb:like> </body>
이외에도 FQL을 통해서 각 데이터 테이블을 조회한다면 좀더 쉽게 페북의 데이터들을 조회할수 있다.
참고 : FQL API http://developers.facebook.com/docs/reference/fql/