谷歌日历 API 错误 400 - 资源 ID 值无效



我想使用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 );

最新更新