Twitter OAuth Sample - nie działa

Witam na forum, to mój pierwszy, ale mam nadzieję, że nie ostatni post.
Railsów uczę się w zasadzie od niedawna.

Ostatnio natrafiłem na problem z oauthem i chciałem przećwiczyć go na przykładzie http://github.com/tardate/rails-twitter-oauth-sample

  1. uruchomilem go na railsach 2.3.4 zamiast 2.2.2 jak jest w konfiguracji
  2. zmienilem aplication.rb na aplication_controller.rb
  3. zmieniłem hosts
  4. zarejestrowalem aplikacje w twitterze
  5. podalem dane do aplikacji w config/environment.rb

a przy próbie zalogowania wyrzuca mi blad “Twitter API failure (account login)” i z logów
“Failed to login via OAuth
Redirected to volfen-test.com
Filter chain halted as [:oauth_login_required] rendered_or_redirected.
Completed in 117ms (DB: 0) | 302 Found [volfen-test.com/members/new ]”

Czy ktoś może mi pomóc to przeskoczyć? Wydaje mi się, że aplikacja nie widzi zmiennych z environmenet.
Proszę o pomoc.

Jest jeszcze takie ciekawe narzędzie:
http://stakeventures.com/articles/2009/07/21/consuming-oauth-intelligently-in-rails

[quote=volfen]Czy ktoś może mi pomóc to przeskoczyć? Wydaje mi się, że aplikacja nie widzi zmiennych z environmenet.
Proszę o pomoc.[/quote]
W jaki sposób zdefiniowałeś te zmienne (kawałek kodu?). Aplikacja powinna widzieć te zmienne (stałe?), więc możesz np. odpalić konsolę i to zobaczyć stamtąd.

Definicja jest w rails-twitter-oauth-sample / config / environment.rb a wygląda tak:

Twitter OAuth settings

TWOAUTH_SITE = ‘http://twitter.com

Twitter OAuth callback default

TWOAUTH_CALLBACK = ENV[‘TWOAUTH_CALLBACK’]

Twitter OAuth Consumer key

TWOAUTH_KEY = ENV[‘TWOAUTH_KEY’]

Twitter OAuth Consumer secret

TWOAUTH_SECRET = ENV[‘TWOAUTH_SECRET’]

a jak ustawiasz te zmienne we ENV? na pewno poprawnie? robisz np. export ZMIENNA=costam w bashu?

Wrzuciłem zmienne bezpośrednio do biblioteki i efekt ten sam, problemem wydaje się być callback, bo wywala mi się na funkcji login_by_auth w która od niego zależy.
Pewnie zrobiłem jakiś mały błąd. Próbowałeś to mozę uruchomić u siebie?

Ok… Na prawde nie wiem co to może być.

Czy Twój komputer jest dostępny dla Twittera pod jakaś domeną, typu moj.komputer.net w publicznym internecie? Nie jestem specem od OAuth ale chyba na takiej zasadzie to działa, czyli jak zzwenątrz nie będzie dostępu do serwera to nie uda się autoryzacja.

Może po prostu użyj authlogic_oauth, na które zresztą wpadłeś u mnie na Flakerze ;]

[quote=hubertlepicki]Ok… Na prawde nie wiem co to może być.

Czy Twój komputer jest dostępny dla Twittera pod jakaś domeną, typu moj.komputer.net w publicznym internecie? Nie jestem specem od OAuth ale chyba na takiej zasadzie to działa, czyli jak zzwenątrz nie będzie dostępu do serwera to nie uda się autoryzacja.[/quote]
wystarczy wpis w etc/hosts nie musi być publicznie, ważne żeby przeglądarka tak myślała.

i tak na razie zrobiłem, może jestem zbyt początkujący żeby ogarnąć tamten przykład i użytą bibliotekę:)
generalnie przez moment chciałem nawet logowanie tylko przez twittera, ale authlogic_oauth wymaga najpierw utworzenia usera.

Callback możesz też robić przez localhost.

Przykład prostego konsumenta znajdziesz tutaj (testowany z Blipem i Twitterem): http://github.com/filiptepper/sinatra-oauth-1.0a-example/
Bardziej skomplikowany przykład (serwer + konsument) tutaj: http://github.com/halorgium/sinatra-oauth

Dołożę swój przykład: http://github.com/qoobaa/oauth-example w Railsach.

[quote=filiptepper]Callback możesz też robić przez localhost.

Przykład prostego konsumenta znajdziesz tutaj (testowany z Blipem i Twitterem): http://github.com/filiptepper/sinatra-oauth-1.0a-example/
Bardziej skomplikowany przykład (serwer + konsument) tutaj: http://github.com/halorgium/sinatra-oauth[/quote]
Dzięki ale do Sinatry to ja jeszcze nie dotarłem. Ale trzeba przyznać, że przykłady działają bardzo fajnie.

Widziałem i nawet próbowałem uruchomić, ale wyrzucał mi już na starcie jakiś błąd chyba “przepełnienia”…

Wrzuć pełny stacktrace - chętnie zerknę.

ok, jak dojade do domu to wrzucę