2013-04-29 35 views
5

Próbuję stworzyć aplikację komputerową, aby uzyskać dostęp do interfejsu API udostępnionego przez Groundspeak dla geocaching.com. Interfejs API wymaga użycia protokołu OAuth."Błąd podczas czytania wiadomości" podczas próby uzyskania tokenu żądania OAuth

Po ustaleniu, dlaczego mój podpis wiadomości został odrzucony (musiałem podwójnie zakodować mój URL wywołania zwrotnego, po przeczytaniu gdzieś, że podwójne kodowanie powoduje problemy), teraz otrzymuję następujący błąd od Groundspeak przy próbie uzyskania Żeton żądania:

oauth_error_message=Error%20while%20reading%20message%20%27DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenRequest%27%20parameter%20%27oauth_callback%27%20with%20value%20%27http%253A%252F%252Fwww.mysite.com%252F%27. 

Brak opisowego komunikatu o błędzie. Jaki jest problem? Groundspeak używa DotNetOpenAuth na swoim serwerze. Wygląda na to, że mój URL wywołania zwrotnego może powodować problem, ale nie mam pojęcia, co.

Prawdopodobnie powinienem również powiedzieć, że tworzę aplikację na komputer, więc URL wywołania zwrotnego nie jest naprawdę prawidłowy. Wskazuje ona na moją własną stronę internetową, ale ta strona w ogóle nie ma pojęcia o OAuth. Jeśli pominę adres URL wywołania zwrotnego, otrzymam komunikat o błędzie "Adres URL połączenia zwrotnego nie jest obecny lub niepoprawny" lub jest niedostępny.

Odpowiedz

1

Nie wiem nic o Groundspeak, ale domyślam się, że wymagają one rejestracji adresu URL wywołania zwrotnego aplikacji przed użyciem OAuth. Przynajmniej Google i Microsoft robią to za pomocą swoich API OAuth. Poszukaj jakichś ustawień programisty w Groundspeak.

+0

Pytałem o to na ich forach, ale nie widziałem odpowiedzi. Nie mogę też znaleźć niczego takiego jak opcje programistyczne. W innych postach nigdy nie widziałem nic o rejestrowaniu adresu URL zwrotnego. Niestety, nie będąc w stanie tego potwierdzić, nie mogę tego zaakceptować ... Będę, jeśli/kiedy będę mógł, chociaż :) – Steve

0

Jest to zdecydowanie coś, co musi zostać dokładniej zdefiniowane w przyszłości: OAuth dla aplikacji innych niż internetowe. Ale wydaje się, że istnieje kilka możliwych rozwiązań (nie najczystszych), które można spróbować uzyskać, aby OAuth działał w aplikacji komputerowej. Możesz zajrzeć do poniższych artykułów, które mają pewne działające rozwiązania (sam tego nie testowałem). Jest on oparty off rozwiązania funkcjonalne Google za obsługę OAuth z zainstalowanych aplikacji desktopowych:

https://developers.google.com/accounts/docs/OAuthForInstalledApps

Link do możliwych rozwiązań Obejście:

http://blog.appharbor.com/2012/06/21/oauth-for-net-desktop-applications

Tutaj również powiązany artykuł na SO dla pulpitu aplikacji OAuth : OAuth for Desktop apps?

Mam nadzieję, że to pomoże!

Powiązane problemy