12

グラフAPIを使用してウェブサイトのFacebookアプリケーションを開発するためにローカルホストを使用したい。私はasp.netc#で働いています

Facebookの以前のAPIでは、アプリケーション設定の接続URLにhttp:// localhost:4300/を記述してい ました。

今ではうまくいきません。アプリケーション名でエラーが発生しました。後でもう一度やり直してください。

誰か提案?

** Webサイトをアップロードし、Webサイトcoonect URLを使用すると、機能します。

4

7 に答える 7

21

Facebook は、サーバーの実際の IP アドレスは気にしませんが、参照ページのドメイン名が Facebook に登録したドメインと同じであることを確認します。開発中にそれを機能させる秘訣は、開発のためにローカル マシンで作業しているときでも、ドメイン名を使用する方法を見つけることです。

DNS レコードを完全に制御できる場合は、開発マシンの実際の IP アドレス (静的 IP の場合) または単に 127.0 を指すホスト レコード (例: 'test.yourdomain.com' ) を追加できます。 0.1

DNS にアクセスできない場合、開発中にこれを回避する最も簡単な方法は、コンピューターのホスト ファイル (OSX および他のほとんどの UNIX マシンでは「/etc/hosts」) にエントリを追加して、ドメインを指定することです。 facebook でローカル ホスト マシンに登録します。したがって、次のような行を追加します。

127.0.0.0 test.yourdomain.com

hostsファイルの最後まで。つまり、Web ブラウザに test.yourdomain.com と入力すると、ローカル マシンに解決されます。

ここで、Facebook のアプリケーション設定の「Web サイト」セクションで、ドメイン名を設定の「サイト ドメイン」セクションに追加したことを確認します。これは、Facebook がドメインのサブドメインからのリクエストを受け入れることを意味します。つまり、「www.yourdomain.com」(本番サーバー) と「test.yourdomain.com」(ローカル開発マシン) の両方からの要求を受け入れます。

これで、ブラウザで「localhost」ではなく「test.yourdomain.com」URL を使用して、ローカル マシンで開発できるようになり、すべてが機能するはずです。

ああ-もう1つ-開発サーバーがポート80で実行されていない場合、facebookリダイレクトURIにもポート番号が必要ですが、ドメインURLと一致するときにこのポート番号が含まれます(率直に言って、これはフェイスブック API)。つまり、開発サーバーが (たとえば) ポート 8080 で実行されている場合は、リダイレクト URI のホスト名の末尾に「:8080」を追加する必要がありますが、運用サーバーポート 80 で実行されている場合は、すべきではないリダイレクトURIに「:80」を入れてください。そうしないと、ページを見るために使用したURLにポート番号が明示的に含まれている場合にのみ機能します(本番サーバーではそうではありません)。これが実際に意味することは、Facebook 認証 URL を生成するときに、ポート番号がポート 80 でない場合にのみポート番号を含めるように条件を設定する必要があるということです。

于 2011-06-14T12:39:17.747 に答える
3

Facebook でアプリの「アプリ ドメイン」設定に「localhost」を追加します。また、「MyApp.test」をローカル サーバーの 127.0.0.1 にリダイレクトするようなことを行っている場合は、「MyApp.test」を「アプリ ドメイン」に追加することもできます。

この問題の解決策を探した後、これを試しました。これは非常に簡単な解決策です。

于 2011-11-10T22:20:02.190 に答える
2

アプリの Facebook 構成で次の基本設定を確認してください。

  • 名前空間が設定されました
  • アプリ ドメインには「localhost」が含まれます
  • キャンバス URL とセキュア キャンバス URL のどちらも、URL に「localhost」のドメインが含まれています。

アプリの構成設定を保存するときに「アプリケーション名」エラーが発生する場合、アプリの名前が有効であり、まだ使用されていないことを確認してください。ローカルホスト (ASP.Net、IISExpress、および非常に大きなポート番号を使用) を、異なるマシン上の複数のユーザーを持つ 4 つまたは 5 つの異なるアプリケーションで常に使用しており、一部の人々が回答で説明した追加の手順を実行する必要はありません。

編集:他の回答を読み直した後、一部の開発者は本番用に使用するのと同じFacebookアプリで開発していると思います。そのため、マシンを本番ドメインにマップする必要がありますか? 私たちはそれをしません.2つの「アプリ」があります. 1 つは localhost 構成でのテスト用で、もう 1 つは本番用です。実行時にどの環境にあるかを判断し、アプリ ID とアプリ シークレットを使用した OAuth リダイレクトなどの必要なすべての URL を構築するコンポーネントがあるため、常に同じコードを実行し、異なるサーバーに異なる構成をデプロイします。

于 2012-05-03T12:28:26.120 に答える
0

あなたがやろうとしていることを正しく理解していて、アプリケーションの設定がFacebookのWebサイトにある場合、Facebookは「localhost」を使用してコンピューターに接続できません。コンピューターのIPアドレスを取得し、アプリケーション設定ページに入力します。

IPを見つけるには:http ://whatismyipaddress.com/

于 2010-07-20T11:11:10.147 に答える
0

問題が Web サーバーの DNS 名やポートに関連していることは確かですか? はいの場合は、webdev サーバーの代わりにローカル IIS を使用できます。Web サイト yourdomain.com を構成し、ホストに 127.0.0.1 yourdomain.com というエントリを追加します。

于 2010-07-20T11:01:48.067 に答える
0

Facebook設定でトップレベルドメインを追加することはできません 参考までに

于 2015-01-15T05:32:15.203 に答える
0

開発サーバーから localhost コンピューターへの ssh トンネルを作成する必要があります。開発サーバーへの各リクエストは、コンピューターによって処理され、返送されます。

于 2010-07-20T12:46:21.463 に答える