SimpleGeo DotnetOpenAuth для C # - PullRequest
       3

SimpleGeo DotnetOpenAuth для C #

1 голос
/ 01 сентября 2010

Я переместил пример simpleGeo из VB (langsamu) в C #.Это удивительная функция для моих нужд, но я не смог исправить класс OAuth, который не могу правильно инициализировать, чтобы протестировать его.Я разместил свой полный проект в этой нижней ссылке, включая образец.В simpleGeo.dll реализованы базовые классы для подключения и запроса simpleGeo.Client.cs - это главное, что нужно сделать и реализовать ConsumerBase.нужно и ключ Gmaps и простой ключ Geo легче получить.Может кто-нибудь помочь мне исправить.

Спасибо за вашу помощь, Роми.

здесь VB: http: github.com / simplegeo / simplegeo-dotnet

здесь C #: C # simpleGeo, который нуждается в вашей помощи

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 Ответ

1 голос
/ 25 апреля 2011

Что ж, я люблю 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 для десериализации в любые ваши собственные классы.

Возможно, у вас есть вспомогательный класс, создающий запрос дляВы в соответствии с переданными параметрами - держите версию где-то не жестко на всякий случай:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...