Mendeleyには素晴らしいAPIがあります(実際にはAPIを使用してコンテストを開催していますが、この質問はOAuthを使用しています)。私はMendeley認証を許可するための戦略を記述しようとしていますし、トラブルのかなりのビットがそう持っていますMendeleyカスタムOAuth戦略
..
は私が/認証/ mendeley、それはMendeley.comに私をリダイレクトし、私が認証するために行きます、それはそれで何もページに私をリダイレクトしますが、この
{「エラー」:「が見つかりませんコンシューマーキー」}
彼らはこれが3脚のOAuthで言及は、そのものですOAuthの通常の処理よりも余計な作業が必要です。彼らはOAuthの1をサポートするように
# /config/initializers/omniauth.rb
module OmniAuth
module Strategies
# tell omniauth to load the strategy
autoload :Mendeley, 'lib/mendeley'
end
end
# gather oauth credentials from the yml file
OAUTH = YAML.load_file(File.join(Rails.root, "config", "oauth.yml"))
# load all the possible oauth strategies
ActionController::Dispatcher.middleware.use OmniAuth::Builder do
provider OmniAuth::Strategies::Mendeley, OAUTH['mendeley']['consumer_key'], OAUTH['mendeley']['consumer_secret']
end
# lib/mendeley.rb
require 'omniauth/oauth'
require 'multi_json'
module OmniAuth
module Strategies
# Omniauth strategy for using oauth2 and mendeley.com
class Mendeley < OAuth2
def initialize(app, consumer_key = nil, consumer_secret = nil, &block)
client_options = {
:site => 'http://api.mendeley.com'
}
super(app, :mendeley, consumer_key, consumer_secret, client_options, &block)
end
end
end
end
これは直接の答えではなく、[devメーリングリスト]にいくつかの(http://groups.google.com/group/ mendeley-open-api-developers /)は、HTTPメソッドをPOSTからGETに変更することで問題が解決されることを発見しました。 –
リダイレクトURLを指定していますか? – netbrain
どこ?私のコード内で、またはMendeleyアプリ内で? – Rabbott