API Facebook:邀请多个用户参加活动

时间:2011-09-21 20:12:49

标签: php facebook-php-sdk

我尝试邀请多个用户参加活动。 阅读文档facebook,我发现了这个:

http://developers.facebook.com/docs/reference/api/event/#invited

我编写了以下代码(不起作用):

$facebook = new Facebook(array(
  'appId'  => '',
  'secret' => '',
  'cookie' => true,
));

if ($user = $facebook->getUser()) {
    $friends = $facebook -> api('/me/friends');
    $e_id = ""; //the event id
    $friends = $friends['data'];
    $e_details = $facebook -> api("/{$e_id}"); //information about the event
    for($ids = null,$i = 0,$len = count($friends); $i < $len; $i++) {
                $friend = $friends[$i];
                $ids .= $friend['id'].',';
    }
    $data = $facebook -> api("/{$e_id}/invited?users={$ids}", 'POST');
    $logoutUrl = $facebook->getLogoutUrl(); 

} else {
     $loginUrl = $facebook->getLoginUrl(array('scope' => 'create_event'));

}

我得到了一个错误的错误:

未捕获的OAuthException:(#200)投放的权限错误

他说的是什么许可?根据文档,我只需要一个权限。

有人可以指出我的错误吗?任何帮助表示赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:1)

所以首先尝试将id存储在一个数组中,不确定尾随的逗号是否正在弄乱它。如果它在列表中,也要删除你的自己。您还可以在http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fgroups测试来电,看看还有什么可以测试。也许添加一个测试来仔细检查用户是否也具有create_event权限。

if ($user = $facebook->getUser()) {
    $friends = $facebook -> api('/me/friends');
    $e_id = ""; //the event id
    $friends = $friends['data'];
    $e_details = $facebook -> api("/{$e_id}"); //information about the event
    for($ids = null,$i = 0,$len = count($friends); $i < $len; $i++) {
        $friend = $friends[$i];
        if($user != $friend['id']){
            $ids[] = $friend['id'];
        }
    }
    $data = $facebook -> api("/{$e_id}/invited", 'POST', array("users"=>implode(",", $ids)));
    $logoutUrl = $facebook->getLogoutUrl(); 
} else {
    $loginUrl = $facebook->getLoginUrl(array('scope' => 'create_event'));
}

答案 1 :(得分:0)

Mauvaise gestion des virgule je pense,là$ ids se termine par une virgule,essayeplutôtcommeça:

for($ids = null,$i = 0,$len = count($friends); $i < $len; $i++) {
            $friend = $friends[$i];
            if ($ids)$ids.=',';
            $ids .= $friend['id'];
}

Et il faut limiter lesinvitationsà100par“boucle”si on croit la FAQ de google sur les nouvelles limits d'invitations