Используя библиотеку ruby OAuth, я пытаюсь проверить, действительны ли учетные данные предыдущего пользователя.(в случае, если он отозвал привилегии для моего приложения) Я сделал это для Twitter без проблем, так как есть удобный .authenticated?метод в библиотеке Twitter OAuth.Используя универсальную библиотеку, я не могу найти подобных методов.
@consumer = OAuth::Consumer.new(
ENV['TUMBLR_CONSUMER_KEY'],
ENV['TUMBLR_CONSUMER_SECRET'],
{ :site => 'http://www.tumblr.com',
:request_token_path => '/oauth/request_token',
:authorize_path => '/oauth/authorize',
:access_token_path => '/oauth/access_token',
:http_method => :get
}
)
@access_token = OAuth::AccessToken.new(@consumer, @tumblrauth['access_token'], @tumblrauth['access_token_secret'])
puts @access_token.inspect
@resp = @access_token.get('api/read')
puts @resp.inspect
Я получаю ошибку сервера, как только я пытаюсь вызвать вызов @ access_token.get (), что-то о том, что nill не имеет метода downcaseЯ предполагаю, что вместо этого он ожидает какую-то строку.Но я не знаю, к какому параметру он относится.
Используемый мной access_token и секрет были ранее работоспособны, но я отменил доступ к приложению, чтобы проверить, как его обнаружить.Мне просто нужен какой-то способ узнать, что пользователь больше не зарегистрирован в этой службе, поэтому я могу переключать состояние.
Вот трассировка стека:
NoMethodError - undefined method 'downcase' for nil:NilClass:
/Library/Ruby/Gems/1.8/gems/oauth-0.4.4/lib/oauth/request_proxy/base.rb:93:in 'normalized_uri'
/Library/Ruby/Gems/1.8/gems/oauth-0.4.4/lib/oauth/request_proxy/base.rb:113:in 'signature_base_string'
/Library/Ruby/Gems/1.8/gems/oauth-0.4.4/lib/oauth/signature/base.rb:77:in 'signature_base_string'