SimpleGeo DotnetOpenAuth for C#

时间:2010-09-01 14:04:55

标签: c# google-maps dotnetopenauth

我已将simpleGeo示例从VB(langsamu)移到C#。这是我的需求的一个惊人的功能,但我无法修复我无法正确初始化测试它的OAuth类。我已经在这个底部链接中发布了我的完整项目,包括示例。 simpleGeo.dll实现基类来连接和查询simpleGeo。 Client.cs是要去的主要观点。实现ConsumerBase。需要和Gmaps键和simpleGeo键更容易获得。有人可以帮我解决。

感谢您的帮助,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 个答案:

答案 0 :(得分: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反序列化到您的任何自定义类中。

根据传递的参数,您可能有一个帮助程序类为您构建请求 - 将版本保存在某个未硬编码的地方以防万一:)