gpt4 book ai didi

ruby - Google API ruby​​ 客户端显然没有获取所有事件

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:27 25 4
gpt4 key购买 nike

我使用过 Google API Ruby 客户端 example repo在 Github 上作为我的日历应用程序的起点。

它运作良好,通常没有问题。然而,最近,我注意到我的生产应用程序并没有获取所有事件。在通过 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

顺便说一句::timeMax 和 :timeMin 也没有按预期工作,但我认为这是一个不同的问题。

最佳答案

代码似乎不是这里的问题。

我猜想发生了以下情况之一

  1. 您的费率受到限制了吗? (不太可能使用 smaple 应用程序达到限制,但仍然很容易使用响应代码进行检查)
  2. 加载时间超过 2 秒(默认 net http 响应超时为 2 秒,默认 faraday 设置为 net:http)

在这种情况下我会怎么做。在决定下一步之前我会做以下事情

  1. 从其响应对象打印 api 客户端 gem 中的响应对象错误代码和 http header 。我会寻找响应中的缓存 header 是什么以及状态代码是什么。

  2. 如果您的生产机器上有 ngrep,只需让它打印并显示整个 http 请求响应,而不是在 gem 中打印它。

  3. 如果响应时间超过 2 秒,请增加 net::http 的超时设置并检查。

关于ruby - Google API ruby​​ 客户端显然没有获取所有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com