我正在尝试使用此处的指南设置yt gem:http://www.rubydoc.info/gems/yt/frames#Web_apps_that_require_user_interactions(方案3),但我有点迷失。我甚至没有一个普遍的想法。我对这整个“omniauth”事情都很陌生,我观看过的YouTube教程(rails casts和stuk.io)并没有太大帮助。如果有人能指出我使用这个宝石进行用户身份验证的正确方向(可能有设计?),那就太棒了!
答案 0 :(得分:0)
Devise
上的{p> Omniauth
很好,但yt gem
无法识别client_id
和client_secret
。 Omniauth gem
将与yt gem
一起使用。
第1步
在您的gem文件中添加google-oauth2 gem
和yt 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