Как заставить Netflix OAuth API использовать мой обратный вызов?

У меня есть простое Rails-приложение, в котором я пытаюсь использовать Netflix API для получения доступа к некоторой информации о моих подписчиках, такой как моя история и очередь. Моя проблема в том, что независимо от того, что я делаю, Netflix не использует мой oauth_callback url, а вместо этого перенаправляет меня на сайт Netflix после того, как я авторизую приложение с помощью своих учетных данных пользователя.

Вот код контроллера, который делает запрос к API Netflix

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.

Netflix Link Account page

Однако, если я посмотрю на источник этой страницы, то увижу в форме, что поле oauth_callback установлено в oob

      

Я проверил несколько разных способов, и я устанавливаю параметр oauth_callback точно так же, как в Netflix Authentication Walkthrough. На самом деле, когда я прохожу этот путь и ввожу свой url обратного вызова в их поле, он действительно перенаправляет обратно на мое приложение rails.

Итак, мой вопрос, знает ли кто-нибудь, как заставить Netflix уважать мое поле oauth_callback?

edit:

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, который является маршрутом к моему локальному приложению rails.

edit2:

Я использую oauth (0.4.5) и rails (3.1.0) и ruby-1.9.2-p290 [ x86_64 ] на Mac OS X 10.6.8.

6
задан sorens 16 November 2011 в 16:51
поделиться