2012-06-05 32 views
14

Vì vậy, tôi đã sử dụng phương thức REST để gọi API của Google. Tôi cần chèn các sự kiện vào một lịch cụ thể có ID mà tôi có. Đây là yêu cầu POST Tôi gửi:Cách sử dụng lệnh Events.Insert của Lịch Google đúng cách?

Địa chỉ: https://www.googleapis.com/calendar/v3/calendars/ {} calendarID/sự kiện

Body:

Authorization: Bearer {access_token} 
{ 
"end": { 
    "dateTime": "2012-08-30T12:30:00", 
    "timeZone": "America/Chicago" 
}, 
"start": { 
    "dateTime": "2012-08-30T14:00:00", 
    "timeZone": "America/Chicago" 
}, 
"summary": "E E 306", 
"colorId": "9" 
"kind": "calendar#event" 
} 

Và đây là câu trả lời tôi tiếp tục nhận được:

{ 
"error":{ 
    "errors":[ 
    { 
    "domain":"calendar", 
    "reason":"timeRangeEmpty", 
    "message":"The specified time range is empty.", 
    "locationType":"parameter", 
    "location":"timeMax" 
    } 
    ], 
    "code":400, 
    "message":"The specified time range is empty." 
} 
} 

Tôi không hiểu những gì tôi có thể làm sai. Tôi đã nhập tất cả các dữ liệu cần thiết, và nó yêu cầu tôi cho một tham số mà thậm chí không tồn tại cho các sự kiện. Tôi cũng không thể tìm thấy bất kỳ tài liệu nào trên đó về vấn đề cụ thể này. Có ai nhìn thấy một cái gì đó tôi đang mất tích?

+0

FYI bạn có thể muốn chỉnh sửa mã thông báo truy cập của mình và cố gắng tránh đặt quảng cáo đó trong tương lai. Mặc dù chúng hết hạn sau một giờ, ai đó có thể sử dụng mã thông báo đó để đọc và có khả năng ghi vào lịch của bạn trong khi vẫn còn hợp lệ. –

+0

Rất tiếc, tôi cho rằng đó là sự thật. Bao lâu những điều đó lại kéo dài? – AnonymousJohn

+0

Tokens kéo dài một giờ. –

Trả lời

33

Trong khi hỏi câu hỏi này, tôi đối mặt với vẻ cứng rắn đến nỗi tôi nghĩ mình đã tự làm tổn thương não. Khi nó quay ra, lý do tôi không thể tìm thấy bất kỳ tài liệu nào về vấn đề này là vì nó thật sự ngớ ngẩn đến mức nào.

Lý do nó cho tôi một lỗi hài hước như vậy là bởi vì trong quá trình sao chép, tôi đã làm để kiểm tra, tôi lật ngược thời gian bắt đầu và kết thúc. Vì vậy, tôi đã yêu cầu Lịch Google tham gia một sự kiện đã kết thúc trước khi sự kiện bắt đầu, thường không kết thúc quá tốt.

Câu chuyện dài ngắn, nếu bạn gặp lỗi liên quan đến tham số "timeMax" trong khi cố gắng chèn sự kiện, hãy kiểm tra thời gian bắt đầu và kết thúc của bạn.

+2

có cùng một vấn đề, lol – Jason

+1

Tôi cũng mắc phải một sai lầm tương tự. Cảm ơn lời giải thích. –

+1

cùng một vấn đề, lol. cảm ơn vì đã giúp đỡ – Igor

1
{ 
"end": { 
    "dateTime": "2014-04-01T10:00:00-06:00" 
}, 
"start": { 
    "dateTime": "2014-04-02T10:00:00-06:00" 
} 
0

Hãy so sánh khi bắt đầu và kết thúc dateTime, bắt đầu luôn luôn là ít hơn kết thúc. Đồng thời thay đổi định dạng ngày giờ thành "2018-03-07T18: 00: 00 + 05: 30".

Trong IOS, tôi sử dụng

mã này cho định dạng datetime:

let dateTimeFormatter = DateFormatter() 
dateTimeFormatter = Locale(identifier: "en_US_POSIX") 
dateTimeFormatter = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" 
dateTimeFormatter = TimeZone(secondsFromGMT: 0) 
let dateTimeString = dateTimeFormatter.string(from: YOUR_DATE_TIME) 

mã này cho định dạng ngày:

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd" 
let dateString = dateFormatter.string(from: YOUR_DATE) 

Một chìa khóa và giá trị của nó là đủ, còn lại hai phím không cần phải có nghĩa là bạn có khóa 'dateTime' với giá trị, thì không cần phải có khóa 'date' và 'timeZone'. Nếu bạn muốn đặt 'timeZone' là tùy chọn, nhưng chỉ một từ 'date' và 'dateTime' là đủ.

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