在rails上初始化Google api客户端的正确方法

时间:2014-07-25 14:21:52

标签: ruby-on-rails ruby ruby-on-rails-4 google-api-client

我从this example开始,我设法让一切都在sinatra上工作。

但是我想在我的Rails应用程序中使用它,所以我做了以下几点:

  1. 创建客户端,在sinatra中,他们在配置块中执行此操作。
  2. 在rails中我做了:    在config/initializers文件中,我添加了sinatra中的整个块,之后我写了一个类GoogleCalendar::Base,我有:

    class GoogleCalendar::Base
      class << self
        attr_accessor :api_client, :calendar_api
      end
      def self.configure
        yield self if block_given?
      end
    

    就像这样我替换了set :api_client, client, set :calendar, calendar

    在我的应用程序控制器中,我已经添加了:

    def user_credentials
      ...
      (what i've changed was instead of session i've added `see below`)
      auth.update_token!(access_token: session[:access_token], 
                         refresh_token: session[:refresh_token])
    end
    

    因为如果通过session我没有工作,也许有人可以告诉我为什么? (会话之间的冲突?它正在使用cookie。)

    此外,我在应用程序控制器中创建了其他函数,用于回调和获取内容。

    def api_client
      GoogleCalendar::Base.api_client
    end
    
    def calendar
      GoogleCalendar::Base.calendar_api
    end
    

    最后,我创建了其余的控制器/视图,一切正常。

    我的最后一个问题是:可以在Google::APIClient文件夹中创建initialisers,因为我注意到每次我在控制器中更改某些内容时代码会刹车,但如果我重新启动服务器一切正常。

0 个答案:

没有答案