2012-04-14 14 views
0

Ich bin in der Notwendigkeit eines vollständigen C# Beispiels dafür, wie 37Signals OAuth zu verwenden, wie hier beschrieben: http://groups.google.com/group/37signals-api/browse_thread/thread/86b0da52134c1b7e37Signals OAuth C# Beispiel

ich die Zeit begrenzt Bestätigungscode in Punkt 3 wie erwähnt bekommen, aber ich von dort Ich kann den Code nicht erfolgreich einlösen und den Token zurückerhalten.

Hier ist, was ich bisher, wird der Code zur Zeit kehrt Unauthorized Fehler 401 getan haben:

Danke
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(); 

Alle Ideen und Vorschläge willkommen, bitte :)!

+0

Ich empfehle Ihnen UrlEncode die Zeichenfolgen, die Sie in die Anfrage URL concat. – usr

Antwort

1

Ich schlage vor, dass Sie eine Bibliothek verwenden, die die Arbeit auf Protokollebene für Sie übernimmt. Die beste, die ich kenne, ist http://www.dotnetopenauth.net/

Es gibt Anwendungsbeispiele in der Samples Ordner.