Php 邀请朋友参加facebook api活动

Php 邀请朋友参加facebook api活动,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我的脚本在邀请用户参加活动时非常慢,因为它必须检查用户是否已经被邀请参加活动,否则它将给出facebook ouath错误 我能快点吗 foreach ( $_POST['friends'] as $ids ) { if ( $i < 199 ) { $iZ = $facebook->api("/".$event_id."/invited/".$ids, "GET"); if ( $iZ['data'][0]['rsvp_status'

我的脚本在邀请用户参加活动时非常慢,因为它必须检查用户是否已经被邀请参加活动,否则它将给出facebook ouath错误

我能快点吗

foreach ( $_POST['friends'] as $ids ) {
    if ( $i < 199 ) {
        $iZ = $facebook->api("/".$event_id."/invited/".$ids, "GET");
            if ( $iZ['data'][0]['rsvp_status']):
                    $status = $iZ['data'][0]['rsvp_status'];
            else:
                    $status="";
            endif;

    if ( ($status != 'declined' && $status != 'attending' && $status != "unsure" && $status !=     "not_replied") || empty($status)) {
            $id.=$ids . ",";
            $i=$i+1;
    }
 }
}

$id = substr_replace($id ,"",-1);


echo $facebook->api("/".$event_id . "/invited",'POST', array("users" => $id));
foreach($\u POST['friends']作为$id){
如果($i<199){
$iZ=$facebook->api(“/”$event_id.“/invested/”$ids,“GET”);
如果($iZ['data'][0]['rsvp_status']):
$status=$iZ['data'][0]['rsvp_status'];
其他:
$status=“”;
endif;
如果($status!=“谢绝”&&$status!=“出席”&&$status!=“不确定”&&$status!=“未回复”)| |空($status)){
$id.=$id.“,”;
$i=$i+1;
}
}
}
$id=替换子项($id,“,-1);
echo$facebook->api(“/”$event_id.“/invested”、'POST',数组(“users”=>$id));

两种可能的方法:

  • 用于单独发布每个用户id的邀请(单独发布,但仍包含一个请求)–如果单个邀请失败,则仍将发布以下邀请帖子

  • 使用第一个“跨部门”好友id列表–获取与好友id匹配的所有活动成员的列表(使用
    其中eid='event_id'和uid IN(…,…)
    ),然后从原始好友id列表中“减去”结果(已被邀请参加活动的人)。(在PHP中,您可以使用
    array\u diff
    来实现这一点。)


正如Cbroe所说,使用FQL,代码如下:

SELECT uid,name FROM user WHERE uid IN 
(SELECT uid1 FROM friend WHERE uid2=me()) AND NOT 
(uid IN (SELECT uid FROM event_member where eid = 306212359507086))
这将为您提供未被邀请参加该活动的朋友列表

别忘了更改事件id


干杯

我尝试了批量请求,但无法正常工作,最多50个请求。我怎样才能得到我活动中没有朋友的朋友名单?那么?执行几个批处理请求,每个请求包含50个单独的邀请帖子。
foreach($_POST['friends']as$id){flush();$mybkey=$batch->add(“/”$event\u id./invested/”$id,'GET');$batch->execute();$iZ=$batch->response($mybkey);if(empty($iZ['data'][0]['rsvp_状态]):echo“ike inviteret”;$id.=$id.“,”;$p=$p+1;endif;}