Привет всем, я пытаюсь заставить мое приложение 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? Во время публикации формы что-нибудь еще нужно сделать?
ЛЮБЫЕ подсказки будут очень полезны :) заранее спасибо.
Нашел проблему.Код C # говорит, что он публикует байтовый массив, но это не так, достаточно просто опубликовать закодированный st direct.