[SNS] 페이스북 FQL 페이징

Graph api는 paging 정보가 넘어오기 때문에

이 정보를 이용해서 처리하면 되는데

FQL은 어떻게 처리해야 될까?

1. limit만 사용
limit 20, 10 처럼 mysql과 동일한 형태로 사용을 할 수 있지만

결과는 원하는 대로 나오지 않는다

앞의 값이 뒤의 값보다 크면 무조건 결과가 반환되지 않는다.

심지어 Graph API Explorer의 FQL Query 테스트 해보는 것과 FB.api로 쿼리 날리는게

결과가 다르게 온다.(이건 버그일까??)

2. limit, offset 사용
limit 10 offset 20과 같이 사용하는데, 역시 1번과 마찬가진데 반대로

뒤의 값이 앞의 값보다 크면 무조건 결과가 반환되지 않는다.

3. limit, created_time 사용
테스트 해 본 결과 가장 정확하게 페이징이 가능한 방법이다
(더 좋은 방법이 있을수도 있지만, 현재까지 찾은건 이게 최고)

select .... from stream where source_id='page_id etc..' and created_time<이전마지막post의 created_time(timestmp) limit 20

created_time는 테이블마다 명칭이 다를수 있따(comment는 time)

다른 테이블은 1,2 방법이 정상적으로 될수도 있다

위 정보는 stream 테이블만 테스트 되었다.

Posted by incree

2013/09/14 14:44 2013/09/14 14:44
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/268

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

facebook api를 이용해서 page post를 가져오는 건

/page_id/feed 이다

FB.api('/' + pageId + '/feed', {limit:25, until:nextPageUntil}, function(response) {
            iwtObj.common.fn_debug(response);
}

하지만 이 경우 filter_key를 사용할 수 없어서

내가 작성한 feed와 다른 사람의 게시물을 구분할 수 없어서

루프를 돌면서 id 비교해서 나눠줘야 한다.(방법이 있는데 못 찾은것일수도 있음)

내 feed와 다른 사람 게시물을 구분해서 가져오려면 아래와 같은 fql을 사용하면 된다

1. SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key = 'others' AND source_id = page_id

2. SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id = page_id AND actor_id != page_id

보통 1번을 사용하면 되고,

2번은 되긴하지만 기본 feed limit내에서 다른 사람의 게시물을 가져오기 때문에

최근에 모두 내가 작성한 feed만 있다면 결과가 리턴되지 않는다.


내 게시물만 가져오려면 filter_key='owner'을 사용하면 된다.

fql에 limit 사용법은 mysql과 동일하다
limit는 mysql처럼 사용은 할 수 있지만 원하는 대로 나오지 않는다(2013.09.14 추가)
  - limit 25
  - limit 0, 25
  - limit 25, 25





Posted by incree

2013/09/14 14:35 2013/09/14 14:35
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/266

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


Notices

Archives

Authors

  1. incree

Recent Trackbacks

Calendar

«   2019/06   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Site Stats

Total hits:
557531
Today:
169
Yesterday:
177