プライベートネットワーク内のコンピュータで開発サーバー(Javaサーブレットコンテナ)を実行しています(IP範囲192.168.0.0
〜192.168.255.255
)。この開発サーバーは私の統合テスト環境を実行します。このテスト環境には独自のFacebook App IDがあります。サーバーを192.168.x.y
の範囲で実行すると、私の同僚がウェブサイトをテストしたり、自分のFacebookアカウントなどで自分のローカルWebサイトにログインすることができます。Facebook Apps:任意のプライベートネットワークアドレスで単一のFacebookアプリケーションを実行できるようにする
https://developers.facebook.com - >「基本設定」の下にあります - >「Facebookログインのあるウェブサイト」フィールドには、http://192.168.2.106:8080
が設定されています。これは、開発サーバーがバインドするアドレスとポートの組み合わせであるためです。
DHCPのおかげで、私のコンピュータのIPアドレスは少し異なります。すなわち、192.168.2.109
です。私は(例えばFacebookログイン)私のサーバーを起動して、関連する何のFacebook-APIを実行しようとするたびに、私はFacebookの
{
"error": {
"message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
"type": "OAuthException",
"code": 191
}
}
から、次のエラーメッセージが表示されますFacebookのアプリケーションは、「範囲を許可していする方法はありますIPアドレスウェブサイトのFacebookログイン "?他にどのような解決策を提案できますか?
私の同僚は、独自のプライベートネットワークアドレスを使用して、自分のマシンで開発サーバーを起動することもできます。したがって、同じFacebook App IDは、異なるIPアドレスを持つ異なるマシンで動作し、プライベートネットワーク内のすべてのユーザーがアクセスできるようになります。
に「FacebookログインのあるWebサイト」を設定すると、開発サーバーは、実行しているのと同じマシンでのみ使用できることに注意してください。これは残念なことに同僚がこの開発サーバーインスタンスにアクセスするのを防ぎます。
更新
はバグ提出:あなたがWindows上で実行している場合は、あなたのホストがCでファイルを変更してみてください可能性がありhttps://developers.facebook.com/bugs/606277079382609
DCHPサーバに静的リースを設定するだけではどうですか? – Igy
追加の制約を質問に追加してください。 – user314104