ユーザーに代わってさまざまな API と通信できるアプリケーションを実装しています。特に、これには github が含まれます。各 API の認証を実行するために、oauth-plugin ( https://github.com/pelle/oauth-plugin ) を使用しています。残念ながら、これは Github では機能しません。
これが私の現在の GithubToken 実装です。
class GithubToken < ConsumerToken
GITHUB_SETTINGS={
:site=>"https://github.com",
:request_token_path => "/login/oauth/request_token",
:authorize_path => "/login/oauth/authorize",
:access_token_path => "/login/oauth/access_token",
}
def self.consumer
@consumer||=create_consumer
end
def self.create_consumer(options={})
OAuth::Consumer.new credentials[:key],credentials[:secret],GITHUB_SETTINGS.merge(options)
end
def self.get_request_token(callback_url, scope=nil)
https://github.com/login/oauth/authorize
consumer.get_request_token({:oauth_callback=>callback_url}, :scope=>scope||credentials[:scope]||"")
end
end
認証プロセスを開始すると、get_request_token 呼び出し中に 403 エラーが発生します。request_token_path が何らかの形で間違っていると思いますが、正しいパスに関する情報を見つけることができませんでした。検索語の一部として github を使用して google を検索することも、あまり役に立ちませんでした。omniauth を試してみますが、oauth-plugin のプロバイダー機能も使用することを計画しているので、どんな助けも大歓迎です。