2014-03-13 1 views
0

PHP에서 FQL을 사용하여 목록의 팬 페이지에서 생성 된 모든 향후 (공용) 이벤트를 자동으로 가져옵니다. 이 프로세스는 대부분의 페이지에서 완벽하게 작동하지만 일부 페이지는 이벤트를 전혀 반환하지 않습니다.Facebook FQL에서 일부 공개 이벤트를 반환하지 않습니다.

다음은 특정 팬 페이지의 모든 이벤트를 가져 오는 데 사용되는 FQL입니다. 나는이 게시물을 썼을 때 미래의 사건이 한 번있었습니다.

SELECT 
     eid, name, pic_cover, start_time, end_time, location, description, attending_count 
    FROM 
     event 
    WHERE 
     eid IN (SELECT eid FROM event_member WHERE uid = xxxxx) 
    AND 
     (start_time >= now() OR end_time >= now()) 
    ORDER BY 
     start_time ASC 

Facebook의 Graph API Explorer을 사용하여이 쿼리를 테스트 할 수 있습니다. 탐색기를 사용하면 응용 프로그램 또는 자신의 응용 프로그램을 통해 쿼리를 실행할 수 있습니다. 또한 응용 프로그램 액세스 토큰 또는 사용자 액세스 토큰을 사용할 수 있습니다. 그래서 여기

이 (좌절) 결론입니다 : 탐색기의 기본을 통해이 쿼리를 실행하면

  • "그래프 API Explorer에서"사용자 액세스 토큰을 사용하여 - 신청은 이벤트가 발견된다.
  • 응용 프로그램 액세스 토큰을 사용하는 내 자신의 응용 프로그램을 통해이 쿼리를 실행할 때 이벤트는 이 발견되지 않습니다.입니다.
  • 사용자 액세스 토큰을 사용하는 내 응용 프로그램을 통해이 쿼리를 실행할 때 입니다.

해당 이벤트가 공개되어 있음을 확신합니다. 또한 개인적으로 팬 페이지를 좋아하거나 이벤트에 참여하지 않았습니다. 그래서 내 사용자 액세스 토큰이 이벤트에 액세스 할 수있는 충분한 권한을 가진 것처럼 보이지만 응용 프로그램 액세스 토큰이없는 이유에 대해 나는 손해보고 있습니다.

의견이 있으십니까? :)

참고 : 동일한 코드가 다른 팬 페이지와 완벽하게 작동합니다. 구문 오류와 같은 사소한 버그는 문제가 아닙니다.

답변

1

event_member 테이블의 하위 쿼리를 사용하여 사용자 관련 데이터를 쿼리하기 때문에 예상되는 동작입니다.

여기의 문서를 참조하십시오. 그들은

user_events

을 진술하고 https://developers.facebook.com/docs/reference/fql/event_member/#permissions

비공개 이벤트 또는 그래프 API 탐색기를 사용하는 경우 사용자가

에 참석하는 모든 이벤트를 을 볼 수에 대한 허가 , 당신은 사용자로서 귀하의 데이터 (사용자 액세스 토큰)에 접근 할 수있는 권한을 부여합니다.

또한 FQL이 실제로 원하는대로 작동하는지 궁금합니다. 하위 쿼리의 uid가 페이지 ID일까요?

+0

uid는 페이지 ID가됩니다. 내가 얻지 못하는 이유는이 FQL이 대부분의 페이지에서 작동하지만 초기 게시물에서 언급 된 것이 아니기 때문입니다. 그것들은 모두 (공개) 이벤트를 호스팅하는 (공개) 페이지입니다. – Luke

+0

event_member 테이블을 사용하는 대신 ** creator = xxx **를 사용하여 선택하는 경우에도 동일한 작업이 수행됩니다. 대부분의 페이지는 앞으로 공개되는 모든 이벤트를 가져 오지만 언급 된 페이지는 그렇지 않습니다. 사용자 액세스 토큰을 사용하지 않는 한. – Luke