0

こんにちは、連絡先のリストを取得できるように、Rails アプリを (OAuth Wrap を介して) Windows LIVE と通信させようとしています。これを行うために rest_client gem を使用しています。そのアクションコードは次のとおりです。


 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

これは ac# の例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 を間違って使用していると考えていますか? フォームの投稿中に他に何かする必要がありますか?

ヒントは本当に役に立ちます:)事前に感謝します。

4

1 に答える 1

1

問題が見つかりました。C#コードは、バイト配列を投稿すると言っていますが、エンコードされたstダイレクトを投稿するだけで十分です。

于 2011-04-26T11:07:10.310 に答える