【问题标题】:Netflix API, OAuth, and Ruby IssueNetflix API、OAuth 和 Ruby 问题
【发布时间】:2010-10-03 04:39:53
【问题描述】:

我正在尝试将 oauth 与稀有分支 Ruby gem 一起使用。我不断收到错误:

OAuth::Consumer 的实例需要有方法 `marshal_load'

我的代码,activate.rb 在下面。关于如何解决这个问题的任何想法?谢谢! -亨利

require 'oauth/consumer'

def index
  @consumer = OAuth::Consumer.new("CONSUMER KEY","CONSUMER SECRET", {
     :site => "http://api.netflix.com",
     :request_token_url => "https://api-user.netflix.com/oauth/request_token",
     :access_token_url => "http://api.netflix.com/oauth/access_token",
     :authorize_url => "https://api-user.netflix.com/oauth/login",
     :application_name => "AppName"})

  @request_token = @consumer.get_request_token

  session[:request_token]=@request_token
  session[:request_token_secret]=@request_token.secret

  @authorize_url = @request_token.authorize_url({
     :oauth_consumer_key => "CONSUMER KEY"
     :application_name => "AppName",
     :oauth_callback => "http://localhost:3000/activate/callback"
   })

  redirect_to @authorize_url
end

def callback
  @request_token=OAuth::RequestToken.new(session[:request_token],
  session[:request_token_secret])
  @access_token = @request_token.get_access_token

end

【问题讨论】:

    标签: ruby-on-rails ruby api netflix


    【解决方案1】:

    您需要让用户在 Netflix 网站上对其进行物理授权。在这种情况下,可能是你。据我了解,您可以在通过手动授权获得令牌后缓存令牌。

    我在使用 Yammer API 时遇到了类似的问题,但从未真正解决。您可能想查看处理 OAuth 魔法的 Yammer API, Stammer, Ben Scofield did in Ruby

    【讨论】:

      【解决方案2】:

      令牌不可序列化,因此您不能将其存储在会话中。而是将令牌密钥和秘密单独存储在会话中,并在您再次需要时使用密钥和秘密创建一个新的 OAuthToken。

      您可能需要清除会话存储以删除已放入其中的令牌。

      【讨论】:

        【解决方案3】:

        我不知道这是否是最好的解决方案,但这就是我解决它的方法:

        我在 environment.rb 中添加了以下代码:

        class OAuth::Consumer
             def marshal_load(*args)
              self
            end
        

        更多的 hack,这肯定会修复 marshal 加载错误。我不知道这是否会导致其他问题。

        【讨论】:

          猜你喜欢
          • 2014-01-02
          • 1970-01-01
          • 2012-11-12
          • 1970-01-01
          • 2012-08-13
          • 2013-08-29
          • 2011-12-22
          • 1970-01-01
          相关资源
          最近更新 更多