Php 从google日历中删除的事件仍显示在listEvents上
当我从我的应用程序(甚至从谷歌日历)中删除事件时,我遇到了一个问题。我有我的日历和我所有的事件,我第一次尝试删除一个事件,它“工作”:我更改浏览器的选项卡,看到谷歌日历面板,事件成功删除,太棒了!!但是,如果我重新加载应用程序的选项卡。。。我仍然看到这个事件Php 从google日历中删除的事件仍显示在listEvents上,php,google-calendar-api,google-api-php-client,Php,Google Calendar Api,Google Api Php Client,当我从我的应用程序(甚至从谷歌日历)中删除事件时,我遇到了一个问题。我有我的日历和我所有的事件,我第一次尝试删除一个事件,它“工作”:我更改浏览器的选项卡,看到谷歌日历面板,事件成功删除,太棒了!!但是,如果我重新加载应用程序的选项卡。。。我仍然看到这个事件 此外,如果我从Google日历面板中删除数据,应用程序仍会在API调用中恢复此事件: $service->events->listEvents($calendar,$eventsParam); $service是一个Googl
此外,如果我从Google日历面板中删除数据,应用程序仍会在API调用中恢复此事件:
$service->events->listEvents($calendar,$eventsParam);
$service是一个Google\u service\u日历对象
多谢各位
编辑
以下是我删除事件的方式:
public function removedate()
{
$service = getService();
$service->events->delete($this->input->post("calendar"), getEventId($service));
}
我正在使用codeigniter,我正在使用自己制作的助手来执行最常用的功能,这两个功能之间:
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();
}
}
新编辑
还有一件事。。。当我第一次删除某个事件时没有问题(并且该事件已在google日历上删除),当我刷新我的应用程序页面时,该事件仍然存在,当我再次尝试删除该事件时,我收到以下错误:
<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
致命错误:未捕获异常“Google\u Service\u exception”,消息为“调用删除时出错”
https://www.googleapis.com/calendar/v3/calendars/cnhkehagcve7rm8s1g88hauer8%40group.calendar.google.com/events/97smpf2320s3lmg8nnnpb9dndc: (410)
资源已在中删除
/var/www/html/prototipo/application/third_party/vendor/google/apiclient/src/google/Http/REST.php:110
资源已被删除。。。对我知道!!!为什么要保留所有事件
$events = $service->events->listEvents('<calendar_id>');
$events=$service->events->listEvents(“”);
从日历中删除任何事件
$result = $service->events->delete('<calendar_id>', '<event_id>');
echo "<br>========================<br>";
var_dump($result);
echo "<br>========================<br>";
$result=$service->events->delete(“”,”);
回声“
==================================
”;
var_dump($结果);
回声“
==================================
”;
您的应用程序不应显示状态为“已取消”的事件。请交叉检查您的事件id和日历id是否正确……您好@Vipin。对我观看了日历id,它与我的谷歌日历id匹配,关于事件id,我如何在谷歌日历面板上看到id??$events=$service->events->listents($calendarListEntry->id);var_dump($事件);尝试此操作,您将获得运行在代码$result=$service->events->delete('calendar_id','event_id')下的事件id;回声“==================================
”;var_dump($结果);回声“
==================================
”;请让我知道是的,我就是这样做的。。。我将编辑我的问题,以提供更多关于我如何做到这一点的信息。嗨@Vipin。。。谷歌日历面板上是否有任何活动的id??在make$events=$service->events->listEvents($calendarId,$eventsParam)之后,我可以知道事件的id;var_dump($事件)@EloyFernándezFranco,我不知道如何在日历面板上获取事件id,为什么您需要在面板上获取事件id?如果您知道事件的名称,您可以从脚本中获取正确的事件id。。。。或者时间。。。。这是独一无二的,我们可以做任何你想做的…让我们。谢谢@luc。。。这就是问题所在。我不知道为什么我在代码上写了$eventsParameters[“showdelected”]=true;:/非常感谢。