如何使用omniauth对服务进行经过身份验证的调用?

| 我已经从使用OmniAuth的服务接收到令牌/秘密,并且可以为用户存储该令牌/秘密,但是对于如何实际使用这些令牌/秘密来调用服务,我还是有些困惑。 我在这个问题上看到的最接近的东西在这里,但是他解决那里感觉不正确的方式。如果您知道自己在做什么,我觉得OmniAuth可能会为您完成所有这一切。 Netflix有一个相当复杂的身份验证过程,因此我希望通过使用OmniAuth从所有这些中抽象出来来规避所有这些问题。 鉴于我拥有用户的令牌和秘密,如何在调用Netflix之类的服务时使用它们? 非常感谢 :)     
已邀请:
嗨,我是OmniAuth gem的作者。 OmniAuth用于身份验证过程。对于像Netflix这样的OAuth提供程序,这意味着将请求令牌交换为访问令牌,然后将其用于从API中提取用户信息。这些一次性调用是为每个提供程序专门设计的,并不意味着是给定提供程序的通用API客户端。 您可以使用OmniAuth来获取凭据,然后使用网站的另一个特定库(例如ѭ0as或其他,我不确定最好的库)来进行呼叫。您可以通过访问“ 1”来检索在身份验证舞蹈中获得的访问令牌和密码,然后使用它们来初始化API客户端。 您也可以直接使用OAuth库进行这些调用,但是我强烈建议您仅使用现有的库,这样会更快,更轻松。所有这些都有意义吗?     
OmniAuth就是关于身份验证的。您可能应该看看另一个真正调用该服务的工具。例如,对于Facebook,我使用OAuth2 gem和以下代码:
module Facebook
  class Client < OAuth2::Client
    # Return a new OAuth2::Client object specific to the app.
    def initialize
      super(
        APP_CONFIG[:facebook][:api_key],
        APP_CONFIG[:facebook][:app_secret],
        :site => \'https://graph.facebook.com\',
        :parse_json => true
      )
    end
  end

  class Token < OAuth2::AccessToken
    # Return a new OAuth2::AccessToken specific to the app
    # and the user with the given token.
    def initialize(token)
      super(
        Facebook::Client.new,
        token
      )
    end
  end
end

access_token = Facebook::Token.new(users_fb_token)
url          = \"https://graph.facebook.com/#{user_fb_id}/feed\"
response     = access_token.post(url, :message => \"My update\")
请注意,有一些流行服务的瑰宝,例如Facebook和Twitter,可以管理诸如创建令牌,管理URL等幕后事情。对于Netflix,您可以检查以下内容: https://github.com/tiegz/ruby-netflix https://github.com/rares/netflix http://code.google.com/p/flix4r/ 另外请记住,OmniAuth只是将服务数据返回给您。您可以自由地存储它并按自己的方式使用它(Devise拥有它自己的OmniAuth模式,如果您尝试不使用它,可能会遇到麻烦)。您链接的另一个问题对我来说似乎并不过分。     

要回复问题请先登录注册