Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ArgumentError-interval不是有效选项-Rails中的Google日历API错误_Ruby On Rails_Ruby_Google Api_Google Calendar Api - Fatal编程技术网

Ruby on rails ArgumentError-interval不是有效选项-Rails中的Google日历API错误

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

我一直在尝试解决谷歌日历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 `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是在正确的轨道上。投票结束的理由是这仅仅是一个打字错误。请更新你的问题,如果你仍然得到一个错误修复后。嘿,这将是很好的,如果你添加一个解释或至少链接,指出为什么这可能是一个解决方案。