Ruby rest_client и windows LIVE соединяются OAUTH Wrap - PullRequest
0 голосов
/ 26 апреля 2011

Привет всем, я пытаюсь заставить мое приложение rails общаться с Windows LIVE (через OAuth Wrap), чтобы я мог получить список контактов. Я использую гем rest_client, чтобы сделать это. Вот код действия для него:


 def hotmail

    app_id = 'some_id'
    app_sec = 'some_secret'
    app_callback = 'http://my.callback.com/same/as/getting/verification_code'
    app_var = params[:wrap_verification_code]

    encoded = "wrap_client_id=#{app_id}&wrap_client_secret=#{app_sec}&wrap_verification_code=#{app_var}&wrap_callback=#{app_callback}".encode!('UTF-8')

    begin
     r =  RestClient.post("https://consent.live.com/AccessToken.aspx", encoded.bytes.to_a, {:content_type => 'application/x-www-form-urlencoded', :content_length => encoded.bytesize})
    rescue => e
      puts e.message
    end
    render :text => 'hello'
  end

Я основываю это на примере c # http://msdn.microsoft.com/en-us/library/ff750952.aspx (примечание: http://www.goatly.net/2010/12/23/401-unauthorized-when-acquiring-an-access-token-windows-live-sdk.aspx показывает правильную полезную нагрузку)

Однако я продолжаю получать 401 Unauthorized, поэтому я думаю, что я неправильно использую rest_client? Во время публикации формы что-нибудь еще нужно сделать?

ЛЮБЫЕ подсказки будут очень полезны :) заранее спасибо.

1 Ответ

1 голос
/ 26 апреля 2011

Нашел проблему.Код C # говорит, что он публикует байтовый массив, но это не так, достаточно просто опубликовать закодированный st direct.

...