2012-02-23 33 views
5

Tôi đã thử Google câu hỏi này, nhưng không có may mắn, có thể do chuỗi tìm kiếm "Z" không đủ cụ thể.Lịch Google Sự kiện lặp lại sự kiện cũ của GData vẫn hiển thị với EventID kết thúc bằng Z

Bối cảnh:
Sử dụng Google Calendar thư viện gdata Zend, và đã được sử dụng mã đơn giản để liệt kê các sự kiện cho một khoảng thời gian cụ thể. Trong trường hợp này, 27-02-2012 đến 03-03-2012. Tôi đã có một số sự kiện được liệt kê, với một sự kiện lặp lại, có tiêu đề "Rob", mon-fri hàng tuần.
Tôi đang sử dụng mã cơ bản mà không có bất kỳ bổ sung lạ mắt nào. chưa :)

Vấn đề:
khi tôi sử dụng các tham số $query->setSingleEvents(TRUE), tất cả mọi thứ đã làm việc như mong đợi, và cho thấy những sự kiện chính xác.

Khi tôi nói về sự kiện 'hiển thị', tôi đang nói về trang PHP đang sử dụng Zend gdata để hiển thị các sự kiện lịch.
Trong mọi tình huống, Lịch GUI Google đang hiển thị các dữ liệu chính xác (ví dụ. Sự kiện 'Rob' không được hiển thị, vì nó đã bị xóa.

Nhưng khi tôi thiết lập này để FALSE, sự kiện lặp đi lặp lại "Rob ", nên có thời gian bắt đầu có nghĩa là để được nhóm lại, nhưng thay vào đó, một vài sự kiện ngẫu nhiên bổ sung được hiển thị mà không có một starttime, chỉ là cùng một tiêu đề.

Quan sát thú vị
EventID cho sự kiện đã bị xóa nhưng vẫn hiển thị trên trang kết thúc bằng "Z". Nó có eventID thường tiếp theo: _20120302T030000Z

My Câu hỏi
Sự kiện này đã bị xóa trong Google Calendar GUI. Tại sao gdata vẫn hiển thị một sự kiện bị xóa và eventid kết thúc bằng dấu thời gian và Z có nghĩa là gì.

Nghị quyết Nỗ lực:
1. Cố gắng thay đổi nó từ sự kiện định kỳ đến một sự kiện bình thường (loại bỏ các recurrance 'cho tất cả các sự kiện trong loạt'
Không may mắn, vẫn còn những người phụ liệt kê
2. xóa. sự kiện định kỳ hoàn toàn cho tất cả các sự kiện trong chuỗi.
Điều này cho thấy một lần nữa kết quả chính xác trong SingleEvents(TRUE), nhưng trong FALSE, sự kiện cũ 'Rob' vẫn được hiển thị, khi nó đã hoàn toàn bị xóa khỏi lịch.

Code:

function outputCalendarByDateRange($client, $startDate='2012-02-27', 
            $endDate='2012-03-03') 
{ 
    $gdataCal = new Zend_Gdata_Calendar($client); 
    $query = $gdataCal->newEventQuery(); 
    $query->setUser('default'); 
    $query->setVisibility('private'); 
    $query->setProjection('full'); 
    $query->setOrderby('starttime'); 
    $query->setStartMin($startDate); 
    $query->setStartMax($endDate); 
    $query->setSingleEvents(FALSE); 
    $eventFeed = $gdataCal->getCalendarEventFeed($query); 

    foreach ($eventFeed as $event) { 
    echo "Title: " . $event->title->text . "<br />"; 
    echo "Event ID: " . $event->id->text . "<br />"; 
    foreach ($event->when as $when) { 
     echo "Start: " . $when->startTime . "<br />"; 
    } 
    echo "<br />"; 
    } 
} 
+0

Bạn đã thử kiểm tra trạng thái sự kiện, như ở đây ?: http://stackoverflow.com/questions/25849 78/google-calendar-feed-api-deleted-events – Ashley

+0

Hầu hết các âm thanh như một cái gì đó đang được lưu trữ ... –

Trả lời

2

Đây là những gì tôi tìm thấy trong docs:

36.5.6.Xóa sự kiện Sự kiện lịch có thể bị xóa bằng cách gọi phương thức delete() của dịch vụ lịch và cung cấp chỉnh sửa URL của sự kiện hoặc bằng cách gọi phương thức delete() của sự kiện hiện có.

Trong cả hai trường hợp, sự kiện đã xóa sẽ vẫn hiển thị trên nguồn cấp dữ liệu sự kiện riêng của người dùng nếu tham số truy vấn updateMin được cung cấp. sự kiện bị xóa có thể được phân biệt với các sự kiện thường xuyên vì họ sẽ có tài sản eventStatus họ thiết lập để "http://schemas.google.com/g/2005#event.canceled".

có vẻ như bạn sẽ phải kiểm tra trạng thái sự kiện khi phân tích cú pháp nguồn cấp dữ liệu của mình.

BTW dấu thời gian bị phá vỡ để

năm: 2012 trong ngày: 03 tháng: 02 thời gian: giờ T: phút: giây 03:00:00 zulu: Z

Zulu giống với GMT (Giờ chuẩn Greenwich) hoặc UTC (Mã thời gian toàn cầu)

+0

Chỉ cần nói, tôi không bao giờ quay lại điều này để cảm ơn tất cả vì phản hồi của bạn. Cách đây rất lâu, tôi thậm chí còn không nhớ cách tôi giải quyết vấn đề. Ngoài ra, lý do tôi không biết về câu trả lời là vì tôi không đánh dấu vào ô nói email cho tôi bất kỳ phản hồi nào đối với tài khoản email của tôi. Dù sao, tôi không muốn yêu cầu giúp đỡ, sau đó không theo dõi nó, vì vậy xin lỗi! – redfox05

Các vấn đề liên quan