我想使用Symfony命令(批处理(通过API在Google日历中插入事件。
当我插入一个 ID 为"event01487"的事件时,它会抛出以下错误:"代码":400,"消息":"资源 ID 值无效"。
此 id 是唯一的,因为没有插入任何事件 - 它甚至没有插入一次。该ID似乎符合谷歌的要求...
你知道我为什么得到这个吗?
foreach($bookingsToSync as $booking){
$event = new Google_Service_Calendar_Event();
$event->setId($booking['id']);
$event->setSummary($booking['title']);
$event->setDescription($booking['description']);
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime($booking['startDate']->format(DateTime::ATOM));
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime($booking['endDate']->format(DateTime::ATOM));
$event->setEnd($end);
$output->writeln($event->getId());
$service->events->insert($calendarId, $event);
}
您必须遵循此处定义的准则: https://developers.google.com/google-apps/calendar/v3/reference/events/insert
基本上,id 必须介于 5 到 1024 个字符之间,并且由以下字母表中的字符组成: 0123456789abcdefghijklmnopqrstuv
你应该把你的id编码为base32
$encoded = bin2hex( $booking['id'] );
要解码
$decoded = hex2bin( $encoded );