2016-05-09 5 views
1

Ich erhalte ein Problem, wenn ich ein Ereignis aus meiner Anwendung entferne (auch aus Google Kalender). Ich habe meinen Kalender mit allen meinen Veranstaltungen, ich versuche, ein Ereignis zum ersten Mal zu entfernen, und es "funktioniert": Ich ändere den Tab meines Browsers und sehe den Google Kalender-Bereich und das Ereignis wurde erfolgreich entfernt, großartig !! ABER, wenn ich die Registerkarte meiner Anwendung neu lade ... sehe ich immer noch die Veranstaltung !!!
Auch wenn ich die Daten aus dem Google-Kalender-Panel zu entfernen, erholt die Anwendung noch dieses Ereignis auf dem API-Aufruf:Ereignisse, die aus dem Google Kalender entfernt wurden, werden weiterhin in der Liste angezeigt. Ereignisse

$service->events->listEvents($calendar,$eventsParam); 

$ service ein Objekt Google_Service_Calendar ist.

Vielen Dank.

EDIT

Dies ist die Art und Weise, wie ich die Ereignisse löschen:

public function removedate() 
{ 
    $service = getService(); 
    $service->events->delete($this->input->post("calendar"), getEventId($service)); 
} 

ich mit codeigniter arbeite und ich bin mit einem Helfer von mir für den gewöhnlichen Funktionen gemacht, zwischen ihnen diese beiden:

function getService($file=false) 
{ 
    $ci =& get_instance(); 
    if($file) 
     $file = CREDENTIALS_PATH.$file; 
    else 
     $file = CREDENTIALS_PATH.$ci->session->userdata("identity").".json"; 
    $ci->g_client->setAccessToken(file_get_contents($file)); 
    return new Google_Service_Calendar($ci->g_client); 
} 
function getEventId($service) 
{ 
    $ci =& get_instance(); 
    $id   = $ci->input->post("id"); 
    $dni  = $id; 
    if(!is_numeric($id)) 
     $id  = $ci->general_model->getData("users","phone", array("dni"=>$id), true)->phone; 

    $min = false; 
    $max = false; 
    if($ci->input->post("min")) 
     $min  = date("c", strtotime ('-2 hour' , strtotime ((new DateTime(explode("GMT", $ci->input->post("min"))[0]))->format("c")))); 
    if($ci->input->post("max")) 
     $max  = (new DateTime(explode("GMT", $ci->input->post("max"))[0]))->format("c"); 
    $events  = getDates($service, $ci->input->post("calendar"), $min, $max); 
    foreach ($events->getItems() as $event) 
    { 
     if($id==$event->getSummary() || $dni==$event->getSummary()) 
      return $event->getId(); 
    } 
} 

NEW EDIT

Noch eine Sache ... wenn ich ein Ereignis zum ersten Mal lösche, gibt es kein Problem (und das Ereignis wird im Google-Kalender gelöscht), und wenn ich meine App-Seite aktualisiere bleibt das Ereignis, und wenn ich es versuche um es wieder zu löschen, erhalte ich diesen Fehler:

<br /> 
<b>Fatal error</b>: Uncaught exception 'Google_Service_Exception' with message 'Error calling DELETE 
https://www.googleapis.com/calendar/v3/calendars/cnhkehagcve7rm8s1g88hauer8%40group.calendar.google.com/events/97smpf2320s3lmg8nnnpb9dndc: (410) 
Resource has been deleted' in 
/var/www/html/prototipo/application/third_party/vendor/google/apiclient/src/Google/Http/REST.php:110 

RESSOURCE IST GELÖSCHT ... Ja !!! Ich kenne!!! Warum bleibt es ??????

+1

Bitte überprüfen Sie Ihre Event-ID und calendar_id sind korrekt ... –

+0

Hallo @Vipin. Ja ... Ich habe die Kalender-ID gesehen, die mit meiner Google-Kalender-ID übereinstimmt, über die Ereignis-ID, wie kann ich die ID im Google-Kalenderfeld sehen? –

+1

$ events = $ service-> events-> listEvents ($ calendarListEntry-> id); var_dump ($ events); versuchen Sie dies, Sie erhalten eine Ereignis-ID, die unter dem Code $ result = $ service-> events-> delete ausgeführt wird ('calendar_id', 'event_id'); Echo "
========================
"; var_dump ($ result); Echo "
========================
"; –

Antwort

1

Ihre App angezeigt werden sollen nicht mit Statusereignissen zu erhalten = abgebrochen.

+0

Danke @luc ... das war das Problem. Ich weiß nicht, warum ich auf den Code schrieb $ eventsParameters ["showDeleted"] = true; :/ Vielen Dank. –

1

Um alle Ereignisse

$events = $service->events->listEvents('<calendar_id>'); 

Um entfernen jedes Ereignis aus dem Kalender

$result = $service->events->delete('<calendar_id>', '<event_id>'); 
    echo "<br>========================<br>"; 
    var_dump($result); 
    echo "<br>========================<br>"; 
+0

Ja ist es wie ich ... Ich werde meine Frage bearbeiten, um mehr Informationen darüber zu geben, wie ich das tue. –

+0

Hi @Vipin ... gibt es eh die ID eines Events im Google Kalender Panel zu kennen ?? Ich kann die ID der Ereignisse nach make $ events = $ service-> events-> listEvents ($ calendarId, $ eventsParam); var_dump ($ events); –

+1

@ EloyFernándezFranco auf https://calendar.google.com/? –

Verwandte Themen