4

Netflixで使用するoauth署名を生成しようとしています。私は彼らのAPIドキュメントに従っていますが、「ライブラリを使用している場合、ベース文字列を作成すると、署名を簡単に生成できます。ベース文字列と共有を渡すと、問題が発生します。関数の秘密を取得し、署名を取り戻します。例については、OAuthコードページを参照してください。」

ベース文字列を作成して共有シークレットを作成することはできますが、Oauthgemを使用して署名を生成する方法を理解できません。

どんな助けでも素晴らしいでしょう。

4

3 に答える 3

2

gem を使用する代わりに、手動で Oauth 署名を作成することになりました。

  plain_url = "#{NETFLIX_PUBLIC_URL}"+"#{NETFLIX_TOKEN_ACCESS}"


   latest_time = "#{Time.now.to_i}"
   nonce = rand(1_000_000)
   token_string="oauth_consumer_key=#{NETFLIX_KEY}&oauth_nonce=#{nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp=#{latest_time}" +
       "&oauth_token=#{oauth_token}&oauth_version=1.0"

   encoded_string = CGI.escape(token_string)
   encoded_url = CGI.escape(plain_url)
   signature_string=  "GET&"+encoded_url+"&"+encoded_string
   puts "signature string is " + signature_string

   signature_key = "#{NETFLIX_SECRET}&#{token_secret}"

   signature = Base64.encode64(HMAC::SHA1.digest( signature_key,signature_string)).chomp.gsub(/\n/,'')

   encoded_signature = CGI.escape(signature)
   call = plain_url + "?" + token_string + "&oauth_signature="+encoded_signature
于 2012-07-20T00:14:27.463 に答える
0

ヒントについては、omniauth 戦略をご覧になりましたか? https://github.com/spagalloco/omniauth-netflix/blob/master/lib/omniauth/strategies/netflix.rb -- オープンソースの美しさ..

于 2012-03-15T05:10:56.983 に答える
0

これを意味しますか:

OAuth::Signature.signature_base_string(request, options = {}, &block)

http://www.rubydoc.info/gems/oauth/0.4.7/OAuth/Signature

于 2015-05-28T05:25:45.743 に答える