2010-12-16 4 views
2

kann ich wissen, gibt es irgendwelche foursquare sdk für .NET C#. Ich mache basierend auf der Entwickler-Referenz, aber ich habe es nicht getan, während Anfrage für Token, ich bekomme weiter den Fehler. Ich verwende VS 2008 und unter Entwicklungsserver. Ich suche vor diesem Fehler wegen URL-Neuschreiben, aber ich bin nicht in IIS gehostet und ich habe auch die web.config, kein Glück auch. Bitte helfen Sie, danke.Foursquare SDK für .net

Das ist mein Fehler ist:

Der HTTP-Verb POST verwendet Pfad für den Zugriff auf '/ login' ist nicht erlaubt.

Dies ist meine Implementierung:

 HttpWebRequest request = null; 

     HttpWebResponse response = null; 

     StreamReader responseStream = null; 

     ASCIIEncoding ascii = null; 
     string key = ConfigurationManager.AppSettings["key"]; 
     string secret = ConfigurationManager.AppSettings["secret"]; 
     string callback = ConfigurationManager.AppSettings["callback"]; 

     string obtainTokenUrl = ConfigurationManager.AppSettings["obtainTokenUrl"]; 

     try 
     { 
      string postData = "client_id=" + key + "&response_type=code&redirect_uri=" + callback; 

      ascii = new ASCIIEncoding(); 
      byte[] postBytes = ascii.GetBytes(postData); 

      try 
      { 
       request = WebRequest.Create(obtainTokenUrl) as HttpWebRequest; 
      } 
      catch (UriFormatException) 
      { 
       request = null; 
      } 

      if (request == null) 
      { 
       throw new ApplicationException("Invalid URL: " + obtainTokenUrl); 
      } 

      request.Method = "POST"; 
      request.ContentType = "application/x-www-form-urlencoded"; 
      request.ContentLength = postBytes.Length; 

      //add post data to request 
      Stream postStream = request.GetRequestStream(); 
      postStream.Write(postBytes, 0, postBytes.Length); 
      postStream.Close(); 

      response = (HttpWebResponse)request.GetResponse(); 
      Encoding encode = Encoding.GetEncoding("utf-8"); 
      responseStream = new StreamReader(response.GetResponseStream(), encode); 

      Response.Write(responseStream.ReadToEnd()); 
+1

Sie codieren oauth selbst? Es gibt gute Bibliotheken, die das für dich tun. Es gibt auch eine ähnliche alte Frage http://stackoverflow.com/questions/3611731/foursquare-oauth-authentication-net-sample – Rup

Antwort

4

Nun, dies kann ein Kreisverkehr Art von Antwort. Aber vielleicht könnten Sie für Windows Phone, die Open-Source-4square App überprüfen 7:
http://4square.codeplex.com/

Da Sie auf den Quellcode schauen, können Sie sehen, wie sie mit dem 4sq API Schnittstelle :-)

+0

Danke, ich werde es ausprobieren. – falcon

4

SharpSquare - FourSquare SDK für .NET http://www.igloolab.com/sharpsquare/

+0

Wir haben versucht, diese Bibliothek in unserer Firma zu verwenden. Wir haben schließlich den Sharpsquare-Code in benutzerdefinierten Code umgeschrieben, weil die Bibliothek in bestimmten Bereichen fehlt (keine Unterstützung für mehrere Anfragen, die Kategorien von Kategorien werden nicht richtig deserialisiert und andere Probleme). Ich kann diese Bibliothek nicht empfehlen, zumindest in ihrer jetzigen Form. –

+1

Wie wäre es dann mit einer Pull-Anfrage? – Christoph