2014-10-03 161 views
1

我很難理解Google日曆API的插入過程。我有他們在他們的例子中給出的代碼,但它在我使用它時不起作用,頁面繪製一個空白(如果我在它下面回顯文本不顯示)。這裏是頁面我指的是一個鏈接: https://developers.google.com/google-apps/calendar/v3/reference/events/insertGoogle日曆API v3插入事件

這裏是代碼:

$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 - > Insert'和一個'CalendarList - > Insert'目錄。 'CalendarList - > Insert'表示我要使用此代碼插入到用戶日曆中:

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

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

echo $createdCalendarListEntry->getSummary(); 

我應該使用它嗎?如果是的話,我在哪裏可以找到一個示例或教程來使用它? (我要如何插入的startDateTime,endDateTime,時區等)

解決 - 這是正確的代碼:

$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

您可以使用「主」字符串直接,沒有必要用電子郵件代替它,如果你想要訪問登錄用戶的主日曆。但是,在任何地方插入任何東西之前,您需要正確進行身份驗證。請按照這裏入門:https://developers.google.com/google-apps/calendar/instantiate還有一個php代碼示例。

還有一些對SO刀片的許多其他工作的樣本,比如這裏:Create Simple Google Calendar Event in PHP

關於您的最後一個問題,CalendarList集是向你表明你的身份驗證的用戶添加到他們的日曆清單中的日曆( Web UI中的左側面板)。它不以任何方式處理事件。爲此,你需要堅持事件收集。

+0

我的身份驗證工作正常,我可以做一些事情,比如列出日曆,但這是插入部分不起作用。我經歷了很多示例,並且迄今爲止它們都沒有工作過,就像在你使用'$ cal = new Google_CalendarService($ client)的鏈接中那樣';'我只能獲得'$ service = new Google_Service_Calendar($客戶);'去工作。不工作的特定部分是'$ event = new Event();'並且我已將其更改爲'$ event = new Google_Event();'仍然沒有任何結果。 – 2014-10-06 15:03:38

+0

是的,我明白你的意思了。如有疑問,請查看源代碼;)https://github.com/google/google-api-php-client/blob/master/src/Google/Service/Calendar.php新的Google_Service_Calendar($ client)聽起來正確,對於該事件的名稱是:Google_Service_Calendar_Event – luc 2014-10-06 22:22:18

+0

那也是xD Google_Service_Calendar的工作,但日期/時間不是,但我相信我可以從那裏弄明白,謝謝你的幫助! – 2014-10-07 15:28:16

相關問題