2010-07-19 2 views
2

J'ai un problème bizarre et frustrant avec l'API de Twitter. Le processus oauth fonctionne très bien localement mais une fois que j'ai mis le site sur heroku, il ajoute automatiquement l'URL du serveur de test et redirige vers une page cassée. Voici le code:Comment compresser une URL de redirection dans des rails? J'ai des problèmes avec OAuth de Twitter

def oauth 
    oauth = Twitter::OAuth.new('*','*') 
    request_token = oauth.request_token(:oauth_callback => 'http://strong-ice-53.heroku.com/callback') 
    session[:request_token] = request_token.token 
    session[:request_token_secret] = request_token.secret 
    session[:returnurl] = params[:returnurl] 
    redirect_to request_token.authorize_url 
    end 

Localement http://strong-ice-53.heroku.com/oauth me envoie à api.twitter.com/... très bien. mais une fois en ligne, il m'envoie au http://strong-ice-53.heroku.comapi.twitter.com/ ... ce qui me donne une erreur.

J'ai essayé broutait la redirection mais cela ne semble pas fonctionner:

redirect_to request_token.authorize_url.chomp("strong-ice-53.heroku.com") 

Toute aide serait grandement apprécié. Je suis un noob à tout cela.

Répondre

0

Quelle version de twitter oauth utilisez-vous? Cela ressemble à un bug en oauth pour moi.

Aussi pouvez-vous s'il vous plaît inspecter le contenu de la variable request_token.authorize_url? Quelque chose comme ça devrait faire l'affaire:

def oauth 
    oauth = Twitter::OAuth.new('*','*') 
    request_token = oauth.request_token(:oauth_callback => 'http://strong-ice-53.heroku.com/callback') 
    session[:request_token] = request_token.token 
    session[:request_token_secret] = request_token.secret 
    session[:returnurl] = params[:returnurl] 
    logger.info("\n\n\n\n#{request_token.authorize_url.inspect}\n\n\n\n") 
    redirect_to request_token.authorize_url 
end 

Et puis regarder le serveur pour la sortie