2016-04-08 4 views
1

oauth2でmapmyfitness apiに接続しようとしています。しかし、接続しようとするとエラーが発生します。oauth2/apiとレールで接続できない

これは設定ファイルである..私は(それがhttps://www.mapmyfitness.com/v7.1/oauth2/authorize/confirmにリダイレクト)接続しようとするたびにしかし、私は少なくともmapmyfitnessにログインできるようにする必要があることを利用し

OmniAuth.config.logger = Rails.logger 
 

 
Rails.application.config.middleware.use OmniAuth::Builder do 
 
    provider :mapmyfitness, ENV['wn3ghaaqgbpnztsupsyfvswd3gtprvm9'], ENV['fRMsDbrNQJBgFUBkYReuqKffFKWTzZWVUKz9jCSTeVJ'] 
 
end

。 ..ブラウザでこのエラーが表示されます。「不正なクライアントがあなたのリソースにアクセスしようとしました。

これを修正する方法がわかりません。何か助けてください!

+0

はwn3ghaaqgbpnztsupsyfvswd3gtprvm9ない限り、あなたのmapmyfitnessアクセス秘密/トークン等しくなるようにご使用の環境に設定されたキーです' – trh

+0

ええ、これらはどちらも鍵/秘密です...もし私がENVを奪うと、mapmyfitnessにアクセスしようとするとこのエラーでヒットする"要求されたリダイレクトがクライアントの設定と一致しませんでした。 – ncrouch25

+0

それはいいです。あなたはもはや不正な人ではなくなったので、あなたのコールバックのURLが間違っていることを伝えているだけです。 – trh

答えて

2

あなたのデータはシェルevironmentに格納されている場合は

  1. のみ[] ENVを使用している二つの問題 - にこれを行うには、「安全な」方法はsecret.yml
  2. に情報を格納することです
  3. あなたのコールバックURLはomniauthが期待しているものと一致する必要があります - ここで説明するように、それはhttp://localhost.mapmyapi.com:12345/auth/mapmyfitness/callbackする必要があります:https://github.com/intridea/omniauth#integrating-omniauth-into-your-application

例をごomniauth初期化のための秘密

を使用してもちろん、あなたが生産のための別のラインを持っています

development: 
    mapmyfitness_provider_key: wn3ghaaqgbpnztsupsyfvswd3gtprvm9 
    mapmyfitness_provider_secret: fRMsDbrNQJBgFUBkYReuqKffFKWTzZWVUKz9jCSTeVJ 

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :mapmyfitness, Rails.application.secrets.mapmyfitness_provider_key, Rails.application.secrets.mapmyfitness_provider_secret 
end 

は、その後、あなたのsecrets.ymlは次のようになります。

また、config/secrets.ymlファイルをバージョンコントロールにチェックしないことを忘れないように、通常は重要です。コピーする代わりにコピーしてくださいそれは展開とそれ。

mapmyfitnessのlocalhostパススルーの代わりにlvh.meを使用してみてください。あなたは必ずあなたの同じポートを使用して、レールのサーバーが何であれポートことを確認する必要があります明らかにhttp://lvh.me:3000

を訪問 -

は、その後、あなたのブラウザで

http://lvh.me:3000/auth/mapmyfitness/callback 

にmapmyfitnessで登録されたコールバックURLを変更

走っている。 `プロバイダ:mapmyfitness、wn3ghaaqgbpnztsupsyfvswd3gtprvm9' 、『fRMsDbrNQJBgFUBkYReuqKffFKWTzZWVUKz9jCSTeVJ』 - そして、あなたはENVの部品を取り外す必要がある - それはおそらくより多くのようになるはず

+0

コールバックアドレスを設定してから適切なルートを追加しましたが、依然として「要求されたリダイレクト...」エラーが表示されています。ここで間違っているのはわかりません – ncrouch25

+0

まず、あなたのサーバがポート12345で動作していることを確認する必要がありますが、プロキシでローカルホストに戻ってしまう可能性があります(localhost.mapmyapi.comをローカルマシンに戻すことができます)。 lvh.meやlocaltest.meのようなパブリックなローカルホストのパススルーを編集します。 – trh

関連する問題