Generating oauth_signature for Netflix

為{幸葍}努か 提交于 2019-12-23 14:37:44

问题


I am trying to generate an oauth signature for use with Netflix. I have been following their API documentation but have issues when they get to the line that says "If you are using a library, once you have created your base string, it is easy to generate the signature. You pass your base string and your shared secret to a function and get the signature back. See the OAuth Code Page for examples."

I can create my base string and have my shared secret but can not figure out how to use the Oauth gem to generate a signature.

Any help would be great.


回答1:


I ended up creating the Oauth signature by hand instead of using the gem:

  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



回答2:


Have you looked at the omniauth strategy for tips? https://github.com/spagalloco/omniauth-netflix/blob/master/lib/omniauth/strategies/netflix.rb -- the beauty of open source..




回答3:


Do you mean this:

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

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



来源:https://stackoverflow.com/questions/5979451/generating-oauth-signature-for-netflix

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!