2010-09-01 33 views
1

我已經從VB(langsamu)的簡單地理示例移到C#。這是我的需求的一個驚人的功能,但我無法修復OAuth類,我無法正確初始化,以測試它。我在這個底部鏈接上發佈了我的完整項目,包括示例。 simpleGeo.dll實現基類來連接和查詢simpleGeo。 Client.cs是&實現ConsumerBase的要點。需要和Gmaps鍵和simpleGeo鍵更容易獲得。有人可以幫助我解決問題嗎?SimpleGeo DotnetOpenAuth for C#

感謝您的幫助,Romi。

這裏VB:HTTP github.com/simplegeo/simplegeo,DOTNET

這裏C#:C# simpleGeo that need your help

namespace SimpleGeo 
{ 
    public class Client : DotNetOpenAuth.OAuth.ConsumerBase 
    { 
     private SimpleGeo.Description Services; 
     private SimpleGeo.TokenManager Tokens; 

     public Client(Version Version, string Key, string Secret): base(new Description(Version), new TokenManager(Key, Secret)) 
     { 
      //added because not firing Public proprieties of base. 
      Services = new Description(Version);//remplace Services 
      Tokens = new TokenManager(Key, Secret);//remplace Token 
     } 
     ... 
     public ServiceProviderDescription Service 
     { 
      get { return base.ServiceProvider; } 
     } 

     private IConsumerTokenManager Token 
     { 
      get { return base.TokenManager; } 
     } 
     .... 

回答

1

嗯,我愛simplegeo但你們沒有看到.NET是一個可行的API的消費者: ) - VB樣本幾乎沒用,SimpleGeo.NET似乎被放棄(?)。我決定推出我自己的客戶端來開展一個我心目中的項目,因爲有一個優秀的REST庫支持OAuth(RestSharp),我用simplegeo試了一下。一個非常粗魯的例子如下:

//create client and pass OAuth credentials 
RestClient client = new RestClient("http://api.simplegeo.com"); 
client.Authenticator = OAuth1Authenticator.ForRequestToken(yourapikey, yoursecret); 

//sample of creating a request for a specific simplegeo endpoint (places near an IP) 
RestRequest request = new RestRequest(Method.GET) {Resource = "{version}/places/{ip}.json", RequestFormat.Json}; 
request.AddParameter("version", "1.0", ParameterType.UrlSegment); 
request.AddParameter("ip", anyiphere, ParameterType.UrlSegment); 

//call the api function 
RestResponse response = client.Execute(request); 

//get the simplegeo response in json 
string json = response.Content; 

的反序列化到您的任何自定義類使用Json.NET

你可能有一個輔助類構建你根據傳遞參數的要求 - 保持地方,以防萬一沒有硬編碼的:)