2 Stimmen

Rails-App, die Oauth verwendet, um auf Twitter zu posten, erhält "nicht autorisiert", wenn sie auf dem Produktionsserver läuft. OK in localhost

Ich versuche, Twitters Oauth Single Token für die Veröffentlichung von einer Rails-App zu meinem Twitter-Feed zu verwenden (Single User Use-Case ist perfekt für meine App). Este Das ist es, was ich meine.

Hier ist der relevante Teil meines Codes:

twitter_consumer_key = 'AAAAAA...'
twitter_consumer_secret = 'BBBBBB///'
oauth_token = 'CCCCC....'
oauth_token_secret = 'DDD.....'

consumer = OAuth::Consumer.new(twitter_consumer_key, twitter_consumer_secret, :site => "http://api.twitter.com", :scheme => :header)
access_token = OAuth::AccessToken.from_hash(consumer, :oauth_token => oauth_token, :oauth_token_secret => oauth_token_secret)
response = access_token.post("http://api.twitter.com/1/statuses/update.json", {:status => "Coffee's ready at 191 Peachtree!! "+Time.now.to_i.to_s})
logger.info response.inspect

Wenn ich dies auf meinem lokalen Rechner ausführe, geht alles gut und der Beitrag wird in meinem Feed erstellt. Wenn ich es auf meinem Produktionsserver (centos5.5, Apache 2, Passenger, Rails 3.0.4) ausführe, erhalte ich "HTTPUnauthorized".

Haben Sie eine Idee, wie man dieses Problem beheben kann?

Vielen Dank im Voraus.

1voto

Alexey Punkte 652

Versuchen Sie es mit dem Ausfüllen der Callback URL in den Einstellungen Ihrer Anwendung auf dev.twitter.com. Das sollte in etwa so lauten:

Rückruf-URL http://yousite.com/auth/twitter/callback

0voto

Rafael Vega Punkte 4416

Gemäß dem Kommentar von abraham füge ich die Lösung als Antwort statt als Kommentar hinzu:

Die Zeitzone meines Servers war falsch eingestellt, so dass ich den folgenden Fehler im Antwortkörper erhielt:

{"request":"\/1\/statuses\/update.json","error":"Timestamp out of bounds"} 
Ich habe die Zeit und die Zeitzone richtig eingestellt, und jetzt funktioniert es einwandfrei.

)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X