Google Calendar API v3插入事件

时间:2014-10-03 19:58:22

标签: php google-calendar-api

我很难理解Google日历API的插入过程。我有他们在他们的示例中给出的代码,但是当我使用它时它不起作用,页面绘制一个空白(如果我回显它下面的文本没有显示)。这是我所指的页面的链接: https://developers.google.com/google-apps/calendar/v3/reference/events/insert

以下是代码:

$event = new Event();
$event->setSummary('Appointment');
$event->setLocation('Somewhere');
$start = new EventDateTime();
$start->setDateTime('2011-06-03T10:00:00.000-07:00');
$event->setStart($start);
$end = new EventDateTime();
$end->setDateTime('2011-06-03T10:25:00.000-07:00');
$event->setEnd($end);
$attendee1 = new EventAttendee();
$attendee1->setEmail('attendeeEmail');
// ...
$attendees = array($attendee1,
               // ...
              );
$event->attendees = $attendees;
$createdEvent = $service->events->insert('primary', $event);

echo $createdEvent->getId();

根据我的理解,我想用我的谷歌日历代码替换'primary'。我已经这样做了,用日历所有者的电子邮件地址替换了'attendeeEmail',删除了额外的逗号,我没有收到任何回复。引用页面链接到已弃用的代码'所以我不确定我使用的是最新的例子。

那里有一个可以参考的工作实例吗?或者我在做什么有问题?任何建议都非常感谢。

最后一个问题:这些都是在'事件 - >下链接的。插入'目录。还有一个' Calendars - >插入'和' CalendarList - >插入'目录。 ' CalendarList - >插入'说我要使用此代码插入用户日历:

$calendarListEntry = new CalendarListEntry();
$calendarListEntry->setId("calendarId");

$createdCalendarListEntry = $service->calendarList->insert($calendarListEntry);

echo $createdCalendarListEntry->getSummary();

我应该使用它吗?如果是这样,我在哪里可以找到一个示例或教程来使用它? (如何插入startDateTime,endDateTime,timeZone等)

已解决 - 这是正确的代码:

$event = new Google_Service_Calendar_Event();
$event->setSummary('Appointment');
$event->setLocation('Somewhere');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2011-06-03T10:00:00.000-07:00');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2011-06-03T10:25:00.000-07:00');
$event->setEnd($end);
$attendee1 = new Google_Service_Calendar_EventAttendee();
$attendee1->setEmail('email');
// ...
$attendees = array($attendee1
               //, ...
              );
$event->attendees = $attendees;
$createdEvent = $service->events->insert('primary', $event);
echo $createdEvent->getId();

1 个答案:

答案 0 :(得分:1)

您可以直接使用“主要”字符串,如果要访问已登录用户的主日历,则无需将其替换为电子邮件。但是,在任何地方插入任何内容之前,您需要正确进行身份验证。请按照此处的入门:https://developers.google.com/google-apps/calendar/instantiate还有一个PHP代码示例。

此外,SO上还有许多其他插入工作样本,例如:Create Simple Google Calendar Event in PHP

关于最后一个问题,CalendarList集合用于向您显示经过身份验证的用户添加到其日历列表中的日历(Web UI中的左侧面板)。它不适用于以任何方式处理事件。为此,您需要坚持事件收集。

相关问题