Ruby on rails Yelp Place API returning“;“无效签名”;仅来自EC2上的Nginx的错误
问题:我从Yelp API中得到一个“无效签名”错误,仅来自生产(在AWS的nginx服务器上运行)当我在本地主机上运行时:3000,没有签名错误,一切正常 我正在rails中使用YelpGem。下面是ruby中的一些代码:Ruby on rails Yelp Place API returning“;“无效签名”;仅来自EC2上的Nginx的错误,ruby-on-rails,nginx,oauth,amazon-ec2,yelp,Ruby On Rails,Nginx,Oauth,Amazon Ec2,Yelp,问题:我从Yelp API中得到一个“无效签名”错误,仅来自生产(在AWS的nginx服务器上运行)当我在本地主机上运行时:3000,没有签名错误,一切正常 我正在rails中使用YelpGem。下面是ruby中的一些代码: $client = Yelp::Client.new({ consumer_key: $SL_CONSUMER_KEY, consumer_secret: $SL_CONSUMER_SECRET, token: $SL_TOKEN, toke
$client = Yelp::Client.new({
consumer_key: $SL_CONSUMER_KEY,
consumer_secret: $SL_CONSUMER_SECRET,
token: $SL_TOKEN,
token_secret: $SL_TOKEN_SECRET
})
begin
$client.search("Los Angeles")
rescue => error
puts error.message
puts error.inspect
end
错误。打印出消息:“签名无效”
错误。检查打印输出:有人见过这个吗?我看过一些相关的帖子,但这似乎有所不同。谢谢 这可能不适用于大多数人,但它可能会帮助某些人,如下所示: 我的“时间”在EC2实例上失效。例如,在ruby中,Time.now没有打印实际时间。(我想大约几分钟后就结束了) 无论如何,YelpAPI在发送请求时需要oauth_时间戳。当然,当时我的要求是在b/c超时。 我是怎么发现这个错误的 我只是用oauth、token、oauth_时间戳等(更多)作为查询参数在浏览器上ping了URL。浏览器以JSON的形式给出错误响应,它说我的请求超时了。当您使用RubyYelp客户机并在代码中捕获异常时,它不会在终端中发出错误响应,因此要找到错误的确切根源有点困难 我是如何解决的: 我按照此处的说明重新校准了ec2实例中的时间:
问题解决了。和平。
无效签名
Yelp API中出现错误有两个原因。
首先,您的四个密钥之一,即
消费者密钥
,消费者密钥
,令牌
,令牌密钥
无效。其次,传递给Yelp API
函数的参数要么无效,要么为零。请分享您的错误消息(无效签名)。@JarachanthanRatnakumar我用一些打印语句和我得到的内容编辑了上面的帖子。我今天也遇到了同样的问题,但我使用的是Yelp Python API。不知怎的,我无意中发现了你的问题。然后,我明白了真正的原因。改变了时间,效果很好!!谢谢!但我在这里使用了时间变化: