Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails应用程序使用Oauth发布到Twitter,获得;“未经授权”;在生产服务器中运行时。本地主机中的OK_Ruby On Rails_Twitter_Oauth - Fatal编程技术网

Ruby on rails Rails应用程序使用Oauth发布到Twitter,获得;“未经授权”;在生产服务器中运行时。本地主机中的OK

Ruby on rails Rails应用程序使用Oauth发布到Twitter,获得;“未经授权”;在生产服务器中运行时。本地主机中的OK,ruby-on-rails,twitter,oauth,Ruby On Rails,Twitter,Oauth,我正在尝试使用Twitter的Oauth Single Token从rails应用程序发布到我的Twitter提要(单用户用例非常适合我的应用程序)。这就是我要说的 以下是我代码的相关部分: twitter_consumer_key = 'AAAAAA...' twitter_consumer_secret = 'BBBBBB///' oauth_token = 'CCCCC....' oauth_token_secret = 'DDD.....' consumer = OAuth::Cons

我正在尝试使用Twitter的Oauth Single Token从rails应用程序发布到我的Twitter提要(单用户用例非常适合我的应用程序)。这就是我要说的

以下是我代码的相关部分:

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
当我在本地机器上运行这个程序时,一切都进行得很顺利,帖子是在我的提要上创建的。当我在我的生产服务器(centos5.5、Apache2、Passenger、Rails3.0.4)上运行它时,我得到了“HTTPUnauthorized”

关于如何解决这个问题有什么想法吗


提前感谢。

根据abraham的评论,我将添加解决方案作为答案,而不是评论:

我的服务器时区设置不正确,因此在响应正文中出现以下错误:

{"request":"\/1\/statuses\/update.json","error":"Timestamp out of bounds"} 
我正确设置了时间和时区,现在一切正常


:)

尝试在dev.twitter.com上的应用程序设置中填充回调URL。 应该是这样的:


回调URLhttp://yousite.com/auth/twitter/callback

回复正文中还有其他内容吗?例如,我强制执行了一个未经授权的错误,响应正文包含
{“请求”:“\/1\/statuses\/update.json”,“错误”:“不正确的签名”}
您的站点在您的Twitter应用程序的授权回调url列表中启用了吗?@Adam:谢谢您的提示!我的服务器的时区设置不正确,因此我在响应正文中遇到以下错误:{“请求”:“\/1\/statuses\/update.json”,“错误”:“时间戳超出界限”}我正确设置了时间和时区,现在工作正常。:)添加解决方案作为答案,并在其他开发人员有相同问题时接受它。时区设置为UTC,而不是UTC-5,这对我来说是正确的时区。