API Facebook: пригласить нескольких пользователей на событие - PullRequest
2 голосов
/ 22 сентября 2011

Я пытался пригласить нескольких пользователей на событие. читая документацию фейсбука, я нашел это:

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'));

}

Я получаю сообщение об ошибке:

Uncaught OAuthException: (# 200) Ошибка разрешений, выданная

какое разрешение он говорит? Согласно документации необходимо только одно разрешение, которое я установил.

Может кто-нибудь указать на мою ошибку? Любая помощь приветствуется. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

, так что сначала попытайтесь сохранить идентификаторы в массиве, не уверенный, если запаздывающая запятая с ними. Также удалите себя, если оно есть в списке. Вы также можете проверить вызов по номеру 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'));
}
0 голосов
/ 21 октября 2011

Mauvaise gestion des virgule je pense, là $ ids se termine par un virgule, essaye plutôt comme ç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 les приглашения на 100 номиналов "на букву" и часто задаваемые вопросыde google sur les nouvelles ограничения приглашений

...