使用yt gem进行用户身份验证并使用rails设计

时间:2016-06-14 09:43:11

标签: ruby-on-rails rubygems

我正在尝试使用此处的指南设置yt gem:http://www.rubydoc.info/gems/yt/frames#Web_apps_that_require_user_interactions(方案3),但我有点迷失。我甚至没有一个普遍的想法。我对这整个“omniauth”事情都很陌生,我观看过的YouTube教程(rails casts和stuk.io)并没有太大帮助。如果有人能指出我使用这个宝石进行用户身份验证的正确方向(可能有设计?),那就太棒了!

1 个答案:

答案 0 :(得分:0)

Devise上的{p> Omniauth很好,但yt gem无法识别client_idclient_secretOmniauth gem将与yt gem一起使用。

第1步

在您的gem文件中添加google-oauth2 gemyt gem

第2步

config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, 'Google-Client-id', 'google-secret-key', scope: 'go through scopes in [google-omniauth github page][1]'
end

第3步

在需要的地方添加yt gem功能。例如,如果您要将视频上传到youtube,请在video.rb中添加以下代码段。

def upload!(user)
    account = Yt::Account.new access_token: user.token
    account.upload_video self.file, title: self.title, description: self.description
  end

并在您的videos_controller.rb

def create
    @video = Video.create(title: params[:video][:title], description: params[:video][:description], file: params[:video][:file].try(:tempfile).try(:to_path))
    @video.user_id = current_user.id
    if @video.save
      uploaded_video = @video.upload!(current_user)
    end
end