我已經在Github上使用Google API Ruby客戶端example repo作爲我的日曆應用程序的起點。Google API ruby客戶端顯然不能獲取所有事件
它運作良好,通常沒有問題。然而,最近我注意到我製作的應用程序不能獲取所有事件。在通過ruby客戶端請求幾個日曆之後,我在表格中呈現事件。在我最初的通話中,只有我使用我的應用程序生成的日期,根本沒有從日曆中獲取數據。在第二次請求時,某些日曆將返回數據並重新加載該應用幾次,所有日曆都將返回事件。
對我來說,似乎有一些緩存正在進行。如果數據沒有足夠快地返回,空的響應會被髮回給我。請求再次發送一些數據,並且我請求返回的數據越多。
也許有什麼毛病我的設置這是不完美,但我認爲:
get '/' do
#fetch all calendars
result = api_client.execute(:api_method => calendar_api.calendar_list.list,
:authorization => user_credentials)
cals = result.data.items.map do |i|
#skip id calendar does not belong to owner or is the "private" primary one
next if i.primary || i.accessRole != "owner"
i.summary
end
cals.compact!
#save all users mentioned in calendars in a set
events_list = result.data.items.map do |i|
#skip calendar if primary or not owned by user (cannot be changed anyway)
next if i.primary || i.accessRole != "owner"
r = api_client.execute(:api_method => calendar_api.events.list,
:parameters => {'calendarId' => i.id},
:timeMax => DateTime.now.next_month,
:timeMin => DateTime.now.beginning_of_month)
#capture all calendars and their events and map it to an Array
r.data.items.delete_if { |item| item.status == "cancelled" }
end
#remove skipped entries (=nil)
events_list.compact!
slim :home, :locals => { :title => Konfig::TITLE, :events_list => events_list, :cals => cals}
end
BTW:timeMax和:時間min不按預期工作要麼但是這是一個不同的問題,我想。
非常感謝。不能真正複製我自己的錯誤,但你的答案對我來說很有意義,所以我想我會獎勵你50分:) – three