2017-05-01 7 views
1

GoogleのCalendar APIとRailsアプリケーションの統合に関するトラブルシューティングを行ってきましたが、何が間違っているかわからないようです。私は全面的にグーグルで行きましたが、この特定のエラーの言及は見つかりませんでした。ArgumentError - intervalは有効なオプションではありません - RailsのGoogle Calendar APIエラー

エラーは次のとおりです。

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' 

それは、この行で上げています:

# 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  

I:これは私がAPIセッションを初期化するために使用しているコードがある

@service = @client.discovered_api('event', 'v3') 

以下の宝石を使用しています:

gem 'omniauth-google-oauth2' 
gem 'google-api-client', '~0.7.1', require: 'google/api_client'  

ユーザーのaccess_tokenとrefresh_tokenとproviderとuidを正常に取得できましたが、何らかの理由でAPIセッションを初期化できませんでした。

その他の情報が必要な場合や、事前にガイダンスやアイデアをお寄せいただきありがとうございます。

+0

エラーがこのコードです。 'retriable(3.0.2)lib/retriable/config.rb:32' – coreyward

+0

ここでエラーが発生しています:https://github.com/kamui/retriable/blob/master/lib/retriable/config .rb#L32 – coreyward

+0

どこかで 'retriable'を設定していますか?イニシャライザのように?これが問題だと思われ、 'interval'を' interval'に変更する必要があります – engineersmnky

答えて

0

てみあなたのGemfileに3.0.1への再試行版をバインドする:

gem 'retriable', '3.0.1' 
関連する問題