Netflix API를 사용하여 내 기록 및 큐와 같은 일부 구독자 정보에 액세스하려는 간단한 Rails 응용 프로그램이 있습니다. 내 문제는 내가 무엇을해도 Netflix는 내 oauth_callback
URL을 사용하지 않고 내 사용자 자격 증명으로 응용 프로그램을 인증 한 후 Netflix 사이트로 전달합니다. 여기 Netflix OAuth API에서 콜백을 사용하도록 설정하려면 어떻게해야합니까?
class ExportController < ApplicationController
def export
consumer = OAuth::Consumer.new(ENV['NETFLIX_KEY'],ENV['NETFLIX_SECRET'],
:site => "http://api.netflix.com",
:request_token_url => "http://api.netflix.com/oauth/request_token",
:access_token_url => "http://api.netflix.com/oauth/access_token",
:authorize_url => "https://api-user.netflix.com/oauth/login")
request_token = consumer.get_request_token
session[:request_token]=request_token
session[:request_token_secret]=request_token.secret
url = request_token.authorize_url(:oauth_callback => "http://#{ENV['OAUTH_CALLBACK_DOMAIN']}/export_callback/", :oauth_consumer_key => ENV['NETFLIX_KEY'],
:application_name => ENV['APPLICATION_NAME'])
redirect_to url
end
def export_callback
@request_token=OAuth::RequestToken.new(session[:request_token],session[:request_token_secret])
@access_token = @request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])
end
end
모든 매개 변수가 올바르게 설정하여 컨트롤러가 올바르게, https://api-user.netflix.com/oauth/login
사이트로 리디렉션에 요청을하고있다 컨트롤러 코드입니다. Netflix Login/Authorize 앱 페이지가 나타납니다. 나는이 페이지의 소스를 보면
그러나, 나는 여러 가지 방법을 확인 한 oauth_callback
필드가 oob
<input type="hidden" name="oauth_callback" value="oob"/>
로 설정되어 있는지 형태로보고, oauth_callback
매개 변수를 Netflix Authentication Walkthrough과 동일하게 설정합니다. 실제로, 연습을 거쳐 자신의 필드에 콜백 URL을 넣으면 실제로 레일 응용 프로그램으로 다시 리디렉션됩니다.
내 질문에, 누구든지 내 oauth_callback
필드를 존중하도록 Netflix를 만드는 방법을 알고 있습니까?
편집 :
https://api-user.netflix.com/oauth/login?oauth_callback=http%3A%2F%2Fnetflix.dev%2Fexport_callback%2F&oauth_consumer_key=[REMOVED]&oauth_nonce=631831&oauth_timestamp=1321458391&application_name=[REMOVED]&oauth_token=[REMOVED]
당신은 oauth_callback=http%3A%2F%2Fnetflix.dev%2Fexport_callback%2F
가 내 로컬 레일 응용 프로그램에 대한 경로 인 설정되는 것을 볼 수 있습니다.
EDIT2 :
내가 사용하고있는 oauth (0.4.5)
및 rails (3.1.0)
및 Mac OS X 10.6.8에 ruby-1.9.2-p290 [ x86_64 ]
.
요청이 api-user로 전송 될 때 요청 매개 변수를 제공 할 수 있습니까 (해시를 무작위로 추출하는 것을 잊지 마세요). –
당신을위한 oauth_callback가 consumer.get_request_token 호출이 아닙니까? http://developer.netflix.com/docs/Security를 참조하십시오. – esskar
@phil pirozhkov api-user에게 요청을 추가했습니다. – sorens