Ruby on rails ArgumentError-interval不是有效选项-Rails中的Google日历API错误
我一直在尝试解决谷歌日历API与rails应用程序集成的问题,但似乎无法找出问题所在。我在谷歌上搜索了所有地方,但没有找到任何关于这个特定错误的提及 错误是:Ruby on rails ArgumentError-interval不是有效选项-Rails中的Google日历API错误,ruby-on-rails,ruby,google-api,google-calendar-api,Ruby On Rails,Ruby,Google Api,Google Calendar Api,我一直在尝试解决谷歌日历API与rails应用程序集成的问题,但似乎无法找出问题所在。我在谷歌上搜索了所有地方,但没有找到任何关于这个特定错误的提及 错误是: ArgumentError - interval is not a valid option retriable (3.0.2) lib/retriable/config.rb:32:in `block in initialize' retriable (3.0.2) lib/retriable/config.rb:31:in `init
ArgumentError - interval is not a valid option
retriable (3.0.2) lib/retriable/config.rb:32:in `block in initialize'
retriable (3.0.2) lib/retriable/config.rb:31:in `initialize'
retriable (3.0.2) lib/retriable.rb:18:in `retriable'
google-api-client (0.7.1) lib/google/api_client.rb:595:in `execute!'
google-api-client (0.7.1) lib/google/api_client.rb:330:in `discovery_document'
google-api-client (0.7.1) lib/google/api_client.rb:375:in `discovered_api'
app/services/google_calendar_api.rb:41:in `new_api_session'
app/services/google_calendar_api.rb:11:in `create_event'
app/controllers/events_controller.rb:57:in `create'
它在这条线上升起:
@service = @client.discovered_api('event', 'v3')
这是我用来初始化api会话的代码:
# This is in my google_api.rb
class GoogleCalendarAPI
def initialize(user, params, event)
@user = user
@params = params
@event = event
@client = User.find_by(id: params[:user_id])
end
def create_event
if new_api_session
create_event_object_using_params
send_google_event_create_request
update_google_event_id_on_event
end
end
private
def new_api_session
if @user.access_token?
@client = Google::APIClient.new
@client.authorization.access_token = @user.access_token
@client.authorization.refresh_token = @user.refresh_token
@client.authorization.client_id = ENV['GOOGLE_CLIENT_ID']
@client.authorization.client_secret = ENV['GOOGLE_CLIENT_SECRET']
@client.authorization.grant_type = 'refresh_token'
@client.authorization.refresh!
@service = @client.discovered_api('event', 'v3')
else
return
end
end
# Events crontroller
def create
@event = Event.new(event_params)
if (event_params[:user_id]).blank?
@event.user_id = current_user.id
end
if params[:send_client_email].present?
ClientMailer.event_creation_notification(event_params, @event, params, current_user).deliver_now
end
# If the user authorized their Google Calendar create the event
# in their Google Calendar using the API
if current_user.access_token?
google_api_session = GoogleCalendarAPI.new(current_user, event_params, @event)
google_api_session.create_event
end
respond_to do |format|
if @event.save
format.html { redirect_to events_path , notice: 'Event was successfully created.' }
format.json { render :show, status: :created, location: @event }
else
format.html { render :new }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
我正在使用以下宝石:
gem 'omniauth-google-oauth2'
gem 'google-api-client', '~0.7.1', require: 'google/api_client'
我能够成功获取用户的访问令牌和刷新令牌以及提供程序和uid,但由于某些原因无法初始化API会话
如果您需要任何其他信息,请告诉我,并提前感谢您的指导或想法 尝试将可检索版本绑定到GEM文件中的3.0.1:
gem 'retriable', '3.0.1'
错误在这段代码中;您应该共享它:
retreable(3.0.2)lib/retreable/config.rb:32
您的错误发生在这里:您是否在某处配置retreable
?比如在初始化器中?似乎这就是问题所在,您需要将interval
更改为interval
@tuyona0102是的,gems就是这样工作的。问题的关键是,你的问题假定错误发生在谷歌日历上。您的问题与另一个库完全不同。如果您共享堆栈跟踪中属于您自己代码的部分,这会有所帮助。我怀疑engineersmnky是在正确的轨道上。投票结束的理由是这仅仅是一个打字错误。请更新你的问题,如果你仍然得到一个错误修复后。嘿,这将是很好的,如果你添加一个解释或至少链接,指出为什么这可能是一个解决方案。