2011-12-20 38 views
5

Tôi đang làm việc trên lịch google và gặp sự cố khi đồng bộ hóa dữ liệu giữa ứng dụng Lịch của tôi trên Iphone với Lịch Google. (Tôi sử dụng google api v3) Vấn đề là: Tôi có thể cập nhật sự kiện bằng mã chỉ 1 lần sau khi tôi tạo nó. Lần sau khi tôi cố gắng cập nhật nó, tôi nhận được mã tin nhắn 400: yêu cầu xấu.Vấn đề cập nhật lại api v3 của Lịch Google

Chúng tôi có thể sử dụng lịch Google để khám phá để kiểm tra điều này (https://code.google.com/apis/explorer/#_s=calendar & _v = v3 & _m = calendars.update) bằng cách tạo sự kiện rồi cập nhật sự kiện 2 lần.

Có ai gặp vấn đề này không?

+0

nào bạn tìm thấy bất kỳ giải pháp? – Sharj

Trả lời

3

Bạn không thể cập nhật cùng một sự kiện hai lần. Thay vào đó, hãy căn cứ yêu cầu cập nhật thứ hai của bạn trên dữ liệu sự kiện mới được chuyển đến cuộc gọi lại trong cuộc gọi cập nhật đầu tiên (có eTag mới) để cập nhật lần thứ hai.

+0

này, tôi đang gặp phải vấn đề tương tự khi làm việc với google-api-ruby-client. Bạn có biết cách gửi etag theo yêu cầu không? http://stackoverflow.com/questions/10332255/google-calendar-api-v3-update-event – Sharj

+0

+1 Điều này giải quyết được vấn đề tương tự mà tôi gặp phải trong Google Apps Script. – Fuhrmanator

9

Tôi có vấn đề này cùng và nhận được câu trả lời ở đây: Google Calendar API v3 - Update Event

Bạn có thể chỉnh sửa cùng một sự kiện hai lần, bạn chỉ cần 'get' chuỗi sự kiện

$event = $service->events->get("primary", $exist); 

$seq=$event['sequence']; 

và sử dụng $event->setSequence($seq)

khi đặt chi tiết sự kiện cập nhật của bạn.

1

Đây là một mã Java ví dụ về cách cập nhật sử dụng trình tự:

Event updatedEvent; 
Calendar Service; 

updatedEvent.setSequence(Service.events().get(mCalendarId, updatedEvent.getId()).execute().getSequence()); 
Service.events().update(mCalendarId, updatedEvent.getId(), updatedEvent).execute(); 
Các vấn đề liên quan