让Flickr API的OAuth gem正常工作是一件非常困难的事情。我正在尝试使用以下代码生成一个请求令牌:
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 (404Not Found)“。
我的终结点来自:http://www.flickr.com/services/api/misc.overview.html
我的Flickr使用的是默认的request_token路径,根据:http://www.flickr.com/services/api/auth.oauth.html#request_token我还尝试使用这个链接使用的端点(http://www.flickr.com/services)
当我在OAuth::Consumer对象上调用.request_token_url时,它返回"https://secure.flickr.com/services/oauth/request_token",我可以在浏览器中访问它。考虑到flickr API可能只适用于GET请求,我将OAuth方法更改为GET,但它仍然不起作用。
我以前在不同的API上使用过完全相同的代码,并且它起作用了,所以我不确定现在该怎么做。任何帮助都将不胜感激!
发布于 2011-09-10 07:06:27
我也有同样的问题。Request_token_url方法返回正确的url,但我注意到wireshark请求的url是真的,有www.flickr.com/oauth/request_tok..因此,它需要将/services路径从:站点选项移动到路径选项中。
现在,这段代码适用于我:
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
发布于 2011-08-29 12:19:42
我也遇到了同样的问题,但我的回调url是"oob“,他们说如果你无法访问浏览器,就可以使用它。无论如何,我从oob上删除了引文,它现在可以工作了。
https://stackoverflow.com/questions/7099686
复制相似问题