Пример 37Signals OAuth C#

Мне нужен полный пример C# использования 37Signals OAuth, как описано здесь: http://groups.google.com/group/37signals-api/browse_thread/thread/86b0da52134c1b7e

Я могу получить ограниченный по времени проверочный код, как указано в пункте 3, но оттуда я не могу успешно выполнить POST, чтобы погасить код и получить токен обратно.

Вот что я сделал до сих пор, на данный момент код возвращает ошибку 401 Unauthorized:

HttpWebRequest webRequest = null;
WebResponse webResponse = null;
byte[] byteArray = Encoding.UTF8.GetBytes(code);

webRequest = (HttpWebRequest)WebRequest.Create("https://launchpad.37signals.com/authorization/token?client_id=" + clientId + "&redirect_uri=" + redirectUri + "&client_secret=" + clientSecret + "&type=web_server");
webRequest.Method = "POST";
webRequest.ContentLength = byteArray.Length;
webRequest.ContentType = "application/xml','Authorization: OAuth'";

string EncryptedDetails = Convert.ToBase64String(Encoding.ASCII.GetBytes(code));
webRequest.Headers.Add("Authorization", "Token" + code);

Stream dataStream = webRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();

webResponse = webRequest.GetResponse();

Любые идеи и предложения приветствуются, пожалуйста :) Спасибо!


person PW763    schedule 14.04.2012    source источник
comment
Я предлагаю вам UrlEncode строки, которые вы объединяете в URL-адрес запроса.   -  person usr    schedule 15.04.2012


Ответы (1)


Я предлагаю вам использовать библиотеку, которая работает на уровне протокола. Лучший, который я знаю, это http://www.dotnetopenauth.net/.

В папке Samples есть примеры использования.

person Dmytro Shevchenko    schedule 14.04.2012