0

Hi all I am trying to get my rails app to talk to Windows LIVE (through OAuth Wrap) so I can retrieve a list of contacts. I am using the rest_client gem to do this. Here is the action code for it:


 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

I base this on a c# example http://msdn.microsoft.com/en-us/library/ff750952.aspx (note: http://www.goatly.net/2010/12/23/401-unauthorized-when-acquiring-an-access-token-windows-live-sdk.aspx shows the correct payload)

However I keep getting 401 Unauthorized, so I am thinking is the way I am using rest_client incorrectly? During a form post is there somthing else I need to do?

ANy hints will be really helpful :) thanks in advance.

charleetm
  • 916
  • 1
  • 12
  • 26

1 Answers1

1

Found the problem. The C# code says it post the byte array but thats not true just post the encoded st direct is enough.

charleetm
  • 916
  • 1
  • 12
  • 26