当我从我的应用程序中删除事件时,我遇到了一个问题(即使是谷歌日历也是如此)。我的日历包含我的所有活动,我尝试首次删除活动,并且“工作”:我更改了浏览器的标签,并看到了Google日历面板并且活动已成功移除,非常棒!!但是,如果我重新加载我的应用程序的选项卡...我仍然看到事件!!!
此外,如果我从Google日历面板中删除数据,应用程序仍会在API调用中恢复此事件:
foo
$ service是Google_Service_Calendar对象。
谢谢。
修改
这是我删除事件的方式:
$service->events->listEvents($calendar,$eventsParam);
我正在使用codeigniter,我正在使用自己制作的帮手来完成最常用的功能,在这两者之间:
public function removedate()
{
$service = getService();
$service->events->delete($this->input->post("calendar"), getEventId($service));
}
新编辑
还有一件事......当我第一次删除事件时没有问题(并且事件在谷歌日历上被删除),当我刷新我的应用页面时,事件仍然存在,当我尝试再次删除它我收到此错误:
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();
}
}
资源已被删除......是的!我知道!!!为什么它仍然存在?
答案 0 :(得分:1)
获取所有事件
$events = $service->events->listEvents('<calendar_id>');
删除日历中的任何事件
$result = $service->events->delete('<calendar_id>', '<event_id>');
echo "<br>========================<br>";
var_dump($result);
echo "<br>========================<br>";
答案 1 :(得分:1)
您的应用不应显示状态=已取消的事件。