2 Stimmen

API Facebook: mehrere Benutzer zu einer Veranstaltung einladen

Ich versuche, mehrere Benutzer zu einer Veranstaltung einzuladen. Beim Lesen der Dokumentation von Facebook habe ich Folgendes gefunden:

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

Ich habe den folgenden Code geschrieben (der nicht funktioniert):

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

if ($user = $facebook->getUser()) {
    $friends = $facebook -> api('/me/friends');
    $e_id = ""; //die Veranstaltungs-ID
    $friends = $friends['data'];
    $e_details = $facebook -> api("/{$e_id}"); //Informationen über die Veranstaltung
    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'));

}

Ich erhalte den folgenden Fehler:

Uncaught OAuthException: (#200) Berechtigungsfehler geworfen

Welche Berechtigung meint er damit? Laut Dokumentation ist nur eine Berechtigung erforderlich, die ich eingestellt habe.

Kann mir jemand meinen Fehler aufzeigen? Jede Hilfe wird geschätzt. Vielen Dank im Voraus.

1voto

platipuss Punkte 26

Also entfernen Sie sich, wenn Sie in der Liste sind. Sie können auch den Aufruf unter http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fgroups testen, um zu sehen, ob es noch etwas zu testen gibt. Vielleicht fügen Sie auch einen Test hinzu, um zu überprüfen, ob der Benutzer die Berechtigung create_event hat.

if ($user = $facebook->getUser()) {
    $friends = $facebook -> api('/me/friends');
    $e_id = ""; //die Event-ID
    $friends = $friends['data'];
    $e_details = $facebook -> api("/{$e_id}"); //Informationen zum 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'));
}

0voto

Julien Punkte 1

Mauvaise Verwaltung der Kommas, denke ich, da $ids mit einem Komma endet, versuche es lieber so:

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

Und es sollten maximal 100 Einladungen pro "Schleifen"-Iteration sein, wenn man der Google-FAQ zu den neuen Einladungsbeschränkungen glaubt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X