5

プライベート ネットワーク ( 192.168.0.0~の IP 範囲192.168.255.255) 内のコンピューターで実行されている開発サーバー (Java サーブレット コンテナー) があります。この開発サーバーは、統合テスト環境を実行します。このテスト環境には、独自の Facebook アプリ ID があります。範囲内でサーバーを実行すると192.168.x.y、同僚が Web サイトをテストしたり、Facebook アカウントでローカル Web サイトにログインしたりできます。

https://developers.facebook.com -> Facebook アプリの設定 -> [基本設定] の下にある -> [Facebook ログインを使用する Web サイト] フィールドに を設定しhttp://192.168.2.106:8080ました。これは、アドレスとポートの組み合わせであるためです。私の開発サーバーはにバインドします。

DHCP のおかげで、私のコンピュータの IP アドレスはわずかに異なります192.168.2.109。サーバーを起動してから Facebook API 関連 (Facebook ログインなど) を実行しようとすると、Facebook から次のエラー メッセージが表示されます。

{
   "error": {
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
      "type": "OAuthException",
      "code": 191
   }
}

Facebookアプリで「Facebookログインを使用したIPアドレスのWebサイトの範囲」を許可する方法はありますか? 他にどのような解決策を提案できますか?

私の同僚は、自分のプライベート ネットワーク アドレスを使用して、自分のマシンで開発サーバーを起動することもできます。したがって、同じ Facebook アプリ ID は、異なる IP アドレスを持つ異なるマシンで動作し、プライベート ネットワーク内のすべてのユーザーが引き続きアクセスできます。

「Website with Facebook Login」を設定localhostすると、開発サーバーは、それが実行されている同じマシンでのみ使用できるようになります。残念ながら、これにより同僚はこの開発サーバー インスタンスにアクセスできなくなります。

アップデート

提出されたバグ: https://developers.facebook.com/bugs/606277079382609

4

5 に答える 5

3

localhost の使用を回避できる場合は、非常に簡単な方法があります。Facebook アプリをhttp://lvh.me:3000/ (またはサーバーが localhost でリッスンしている任意のポート) にリダイレクトします。親切な開発者が lvh.me ドメインを所有しており、DNS が localhost を指すように設定されています。私はこれを試しましたが、それは私が開発テストに使用したものです。同様に、そのようなことを行い、所有するドメインの DNS レコードをローカル IP の範囲にポイントすることができます。私は DNS に詳しくないので、設定方法や可能かどうかわかりません。

于 2012-12-23T04:10:02.537 に答える
1

Windowsで実行している場合は、C:\ Windows \ System32 \ drivers \ etcにあるhostsファイルを変更し、IPを架空のドメインに追加して(同僚もそうする必要があります)、そのドメインをFacebookの[設定]パネルに配置してみてください。これについてはよくわかりませんので、うまくいくかどうか教えてください:)

于 2012-12-12T15:11:35.360 に答える
1

ドメインを所有している場合は、192.168.2.109を指すサブドメインtest.mydomain.comを作成できます。

住所を再度変更する必要がある場合は、それに応じてエントリを変更できます。

DNSエントリが192.168の範囲のIPアドレスを指すことができなかった理由はありません。ネットワーク外の人にとっては、外部からIPアドレスにアクセスできないため、あまり役に立ちませんが、ネットワーク内の同僚にとっては機能します。

同僚が自分のPCでWebアプリを実行したい場合は、もちろん、自分のhostsファイルを使用してこの設定を上書きできます。

于 2012-12-22T22:54:49.393 に答える
1

IP アドレスを使用する代わりに、localhost を使用します。

したがって、hxxp://192.168.1.20 は hxxp://localhost になります。

(xx を tt に置き換えます)

これは、IP アドレスが何であれ、ローカル マシンに解決されます。開発サーバーは、WAMP などを使用して PC で実行されていると想定しています。どのネットワーク環境のどのラップトップでも実行する必要があると述べているため、この仮定を立てます。

于 2012-12-22T02:58:33.787 に答える
1

私の知る限り、アプリケーション設定で IP 範囲を設定することはできません。redirect_uri は通常、ドメイン名を持つ URL を処理することを目的としています。これは通常、公開 Web サイトの場合です。

この問題を回避する最善の方法は、ローカル開発サーバーが常に同じ IP を取得していることを確認することです。これは、サーバーを作成している場合、一般的に良い方法です。ネットワーク設定に応じて、いくつかの方法があります。ここでは 2 つのオプションを示します。

  1. DHCP サーバーをセットアップして、開発サーバーの MAC アドレスに常に同じ IP を割り当てる
  2. ルールを少し曲げて、未使用の IP アドレスを要求するようにコンピューターをセットアップします。通常、DHCP サーバーは順番に IP を割り当てます (192.168.1.1 から開始し、192.168.254.254 まで機能します)。そのため、コンピューターに範囲の上位部分の IP を要求させます (最初に IP を ping して、使用されていないことを確認します)。
于 2012-12-18T22:27:23.720 に答える