Генерация oauth_signature для Netflix - PullRequest
4 голосов
/ 12 мая 2011

Я пытаюсь сгенерировать подпись oauth для использования с Netflix. Я следил за их документацией по API, но у меня возникли проблемы, когда они добрались до строки «». Если вы используете библиотеку, то после того, как вы создали базовую строку, подпись легко сгенерировать. Передача базовой строки и ваш общий секрет для функции и возврат подписи. См. страницу кода OAuth для примеров . "

Я могу создать свою базовую строку и иметь свой общий секрет, но не могу понять, как использовать Oauth gem для генерации подписи.

Любая помощь будет великолепна.

Ответы [ 3 ]

2 голосов
/ 20 июля 2012

Я закончил тем, что создал подпись 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
0 голосов
/ 28 мая 2015

Вы имеете в виду это:

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

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

0 голосов
/ 15 марта 2012

Вы смотрели на стратегию omniauth для советов? https://github.com/spagalloco/omniauth-netflix/blob/master/lib/omniauth/strategies/netflix.rb - красота открытого источника ..

...