我正在尝试通过 Facebook 的 Multiquery FQL 实现以下目标,获取我正在“参加”的所有粉丝页面事件的列表。
我有以下逻辑,并尝试用下面的 FQL 语句实现类似的东西。
- 获取由/从粉丝页面创建的所有事件的列表(使用特定 ID)
- 获取我参加的所有(用户)活动的列表
- 匹配来自 event_member FQL 表的 eid
- 如果他们匹配 ids,并且 rsvp_status 等于参加
- 显示结果。
FQL 多
{"query1":"SELECT eid FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid =$fanpageID)","query2":"SELECT rsvp_status FROM event_member WHERE uid = $uidAND eid IN (SELECT eid FROM #query1)" }
我知道该陈述是不正确的,但我正在努力尝试这样做。我通过 Graph API 在我的 PHP 代码中使用一组非常混乱的 foreach 循环实现了这一点。
使用单个多查询 FQL 语句会更有效。
任何建议都会很棒。
编辑
我现在遇到的问题是 ifaour 的 FQL 语句在 FQL 查询控制台(返回结果)中工作,但是当我运行以下命令时,会返回空数组。
当我将语句分解为(SELECT eid FROM event WHERE creator =$fanPageID)时,FQL 控制台会突出显示不可索引的 eid。
这是我的PHP
函数 usersEventsPoints($uid, $facebook, $fanpageID){
$events = "SELECT eid FROM event WHERE creator=$fanpageID AND eid
IN (SELECT eid FROM event_member WHERE uid=$uid AND rsvp_status = \"attending\")";
$eventsAttendance = $facebook->api(array( 'method' => 'fql.query', 'query' =>$events, )); $eventsAttendingcount = 0;
foreach ($eventsAttendance 作为 $eventsAttendanceFetch) {
if($eventsAttendanceFetch['eid'] == true){ $eventsAttendingcount++; } } return $eventsAttendingcount; }
块引用
有任何想法吗?