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/