2010-12-30 13 views
22

私はこのRailscastで説明されているようにOmniauthを設定しようとしています。それはTwitterで動作しますが、私はFacebookでそれを動作させることができません。私はまた、SITEURLとして「http://localhost:3000」を設定し、ドメインとして「localhost」のが、まだブラウザに次のエラーメッセージが表示されます。Omniauth localhostのFacebook認証

Invalid redirect_uri: Given URL is not allowed by the Application configuration. 

はあなたの誰もがこの問題を解決する方法上の任意の提案を持っていますか?前もって感謝します。

+0

「http://.0.0.0.0:3000/」以外の設定を追加したとは思いません。あなたのローカルRailsサーバを起動するときに、どのIPアドレスが使用していると言いますか? – monocle

+0

http://.0.0.0.0:3000と書かれています。あなたはホストファイルに何を追加しましたか? –

+0

ホストファイルを変更したことがありません。 localhostには127.0.0.1があります。 – monocle

答えて

32

URIのリダイレクトを見てください。私はlocalhost:3000を読んだので、サイトURLを "http:// localhost:3000 /"に変更していました。

+2

これはうまくいきました!この問題に遭遇しましたhttp://stackoverflow.com/questions/3977303/omniauth-facebook-certificate-verify-failed。私は答えに示された助言に続き、別のエラーが発生しました: "/ auth/failure"と一致するルートはありません.. –

+2

ローカルホストでテストする方法はありますか?それでも、プロダクション環境で動作しているアプリケーションはありますか?つまり、私はFacebookにしかアクセスできません。 Facebook上のリダイレクトの運命を変更する –

+1

最終的に誰かがこの糞のための完全な答えでスタック!ありがとう –

7

は、 'サイトのURL' のため

http://0.0.0.0:3000/ 

を使用してみてください。これは私のために働く。 (また、私は 'サイトドメイン'フィールドに何も持っていません。)

+0

あなたのアドバイスに従っても同じエラーが発生します。あなたのホストファイルに行を追加しましたか? : –

+0

Railsは '127.0.0.1'を' localhost'に変換していないので、今、アクセス権を与えることができます。 –

28

ここで私にとってうまくいきました。

FacebookはサイトドメインをIPに設定することはできないため、サイトURLをhttp://127.0.0.1:3000/に設定することはできません。これは、FacebookがURLがドメインと一致しないと不平を言うためです。

だからあなたのFacebookアプリのセットで:ブラウザで3000:

Site URL: http://localhost:3000/ 
Domain: localhost 

をあなたのdevのマシン上のアプリケーションにアクセスする場合は、あなたがローカルホストを入力してください。 127.0.0.1:3000を使用している場合OmniAuthはFacebookに送信するコールバックURLにOmniAuthを使用し、FacebookはRyanの上記のエラーをスローします。

+0

ここでそれらを設定する必要がありますか?どのファイルですか? – kibaekr

+0

@kibaekr Facebookのアプリのダッシュボードhttps://developers.facebook.com/apps/YOUR_APP_ID/summary –

+0

ローカルホストでテストする方法はありますか?アプリは運用環境で動作していますか? Facebookのリダイレクトの運命を変えることなく、ローカルでのテストを続けたいと思っています。 –

15

ローカルのブラウザでhttp://lvh.me:3000に切り替えて、Facebookをローカルでテストします。その後、Facebookのアプリの設定でlvh.meをあなたのドメインにします。

lvh.meは、開発者がサブドメインをローカルにテストするために購入した127.0.0.1を指す登録ドメインです。

+0

大きなヒント。ありがとう! – bikedorkseattle

0

あなたがOSX上にある場合、あなたは

http://yourapp-dev 

にローカルホストの名前を変更するPOW http://pow.cx/を使用することができます(実際には、名前を変更されていない、それが追加されます)

あなたは、Facebook上で有効なドメイン名としてそれを設定することができます。

+3

あなたはそれを試しましたか?私はそれに問題があったので。 Facebookは.devアドレスを許可しませんでした。 – Shmidt