quarta-feira, 20 de outubro de 2010

authlogic_oauth error 401

Estava utilizando o authlogic + authlogic_oauth para o twitter e estava dando um Erro de 401 Unauthorized

Solucoes propostas encontradas na internet:

System date considered important
http://www.coffeepowered.net/2009/12/05/system-date-considered-important/

http://blainegarrett.com/2009/07/14/failed-to-validate-oauth-signature-and-token-on-twitter-oauth-check-your-cloc/

ou

this is an issue about time synchronization of your system with twitter server."

http://stackoverflow.com/questions/1280295/keep-getting-oauthunauthorized-error-when-using-oauth-and-twitter-ruby-gems
http://groups.google.com/group/twitter-development-talk/browse_thread/thread/aadee92bc5c34f29?pli=1
http://stackoverflow.com/questions/3552711/401-error-with-ruby-oauth-for-twitter

Aqui vi que realmente precisava ver o log completo
http://stackoverflow.com/questions/3869032/ruby-on-rails-oauth-application-works-on-client-but-not-on-server-oauthunautho

Nada disso resolveu, tentei fazer um log da resposta direto do twitter e achei o seguinte.
"Invalid / expired Token"

Ai percebi que estava enviando algum dado errado ao re-fazer o login, sendo que o cadastro ele rodava certo.

Percebi que a sessao estava com objetos antigos.

Foi apenas forcar a limpa nesses campos do session:
session[:oauth_request_token_secret] = nil
session[:oauth_request_class] = nil
session[:oauth_request_token] = nil

e funcionou muito bem!

resumindo, configuracao feita correndo, detalhes perdidos e muito tempo gasto.

Atualizacao: 7/dez/2010: Se voce faz um redirect_back_or_default depois do login fique atento que voce pode estar requisitando o mesmo token duas vezes com o mesmo codigo e dara o erro 401 tambem.


go now!!

mais literatura: persistencia do oauth http://stackoverflow.com/questions/2032976/presist-twitter-oauth-session

quarta-feira, 27 de janeiro de 2010

FileColumn bug?

Está recebendo esse erro?
uninitialized constant FileColumn::ClassMethods::Inflector

Já experimentou fazer um workaround assim?

Vá para o arquivo vendor/plugins/filecolumn/lib/file_column.rb
Va para a linha 619
Adicione “ActiveSupport::” antes de “Inflector.underscore(self.name).to_s,”

Vai ficar assim: “ActiveSupport::Inflector.underscore(self.name).to_s,”

Confesso que não é a solução ótima, apesar que vários blogs indicam o mesmo procedimento. Mas funciona!

go ahead now!

Use várias versões do Ruby sem dor de cabeça

Recentemente atualizei o Mac para o Snow Leopard, junto veio as versões novas de rails (2.3.5) e ruby (1.8.9).
Essa atualização causou muita dor de cabeça, pois a maioria dos meus projetos estão com versao rails 2.1.0 e ruby 1.8.6.

Um erro que não consegui corrigi é que os resources, javascripts e css estão vindo com barras duplas. Ex: 127.0.0.1:3000//javascripts/jquery.js.

O que faz que a aplicação não encontre seus arquivos.

Para resolver isso e estabilizar novamente o meu ambiente de desenvolvimento estou instalando o RVM, Ruby Version Manager, que tem como proposta fornecer de uma forma fácil o uso de várias versões do Ruby como 1.8.6, 1.8.7, 1.9.1, 1.9.2, Ruby Enterprise Edition 1.8.6 e JRuby 1.3.1.

Estou instalando e parece ser bem simples mesmo e estou confiante que meus problemas com isso se resolveram.

Para usar eu segui esse tutorial feito pelo Rafael Rosa. Veja mais aqui.

Go ahead now!