OAuth调用请求令牌会产生404错误

时间:2011-08-17 21:25:16

标签: ruby-on-rails ruby oauth flickr

我很难让OAuth gem正常运行Flickr API。我正在尝试使用以下代码生成请求令牌:

user_oauth = OAuth::Consumer.new(consumer_key, consumer_secret, :site => "https://secure.flickr.com/services")
request_token = user_oauth.get_request_token(:oauth_callback => callback_url)

每当我运行此代码时,它会在调用.get_request_token时抛出异常“OAuth :: Unauthorized(404 Not Found)”。

我得到了我的终点:http://www.flickr.com/services/api/misc.overview.html

我的OAuth gem正在使用默认的request_token路径,该路径应该根据以下内容与Flickr一起使用:http://www.flickr.com/services/api/auth.oauth.html#request_token我也尝试使用此链接使用的端点(http://www.flickr.com/services)< / p>

当我在OAuth :: Consumer对象上调用.request_token_url时,它会返回“https://secure.flickr.com/services/oauth/request_token”,我可以在浏览器中访问它。考虑到flickr API可能只适用于GET请求,我将OAuth方法更改为GET,但仍然无效。

我之前在不同的API上使用过这个完全相同的代码并且它有效,所以我不确定此时该怎么做。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。 Request_token_url方法返回正确的URL,但是我通过wireshark查看了真实请求的URL,并且有www.flickr.com/oauth/request_token ..所以它需要将/ services路径从:site选项移动到路径选项中。

此代码适用于我,现在:

    consumer = OAuth::Consumer.new(key, secret, 
            :site               => "http://www.flickr.com", 
            :request_token_path => '/services/oauth/request_token', 
            :authorize_path     => '/services/oauth/authorize',
            :access_token_path  => '/services/oauth/access_token')
    request_token = consumer.get_request_token

答案 1 :(得分:0)

我遇到了同样的问题,但我的回调网址是“oob”,如果您无法访问浏览器,他们会说这是“oob”。无论如何,我从oob上取下了引号,它现在有效。