Facebook Connectをローカルでテストする方法


193

ASP .NETおよびFacebook Connect APIを使用しています。しかし、アプリを実行して[接続]ボタンを押すと、テストローカルサーバーではなくWebサイトに戻ります(http:// localhost:xxxx / test.aspx)。Facebookをローカルでテストする方法(つまり、コールバックURL)?


4
答えはここにあります:forum.developers.facebook.com/viewtopic.php ? pid=116136「C:\ WINDOWS \ system32 \ drivers \ etc \ hosts」ファイルを編集して、ドメインがlocalHostに到達するようにする必要があります
Haytham

101
このシステムは、Facebookの側ではかなり不十分に実装されているようです。彼らがライブサーバー以外で機能をテストしたいと思うことは彼らには起こらなかったようです。ここに記載されている2つのソリューション-ローカルホストファイルを編集して本番サーバーを偽装し、それをlocalhostにリダイレクトすること、およびFacebookのライブ本番URLを一時的にlocalhostに変更することは、どちらもFacebookの設計では著しく悪い設計です。Facebookはシステムに何らかのテスト機能を追加する必要があります。
Paul Legato、2011年

2
回避策は、3つのアプリを用意することです->ライブ、QA、Dev。したがって、メインアプリがapps.facebook.com/ohnice/ QAであり、devがapps.facebook.com/ohnice_qa_sd/ is apps.facebook.com/ohnice_dev_fg/である場合、ランダムなものになるので、家にいるときに不要な訪問者がいない整頓されていません。
tgkprog 2013年

1
@PaulLegatoはそれが今行われています(数年後...)。私のソリューションまたはテスト機能を使用したソリューションの1つを参照してください。
Erdal G.

回答:


236

あなたが知るときそれは十分に簡単です。

開く/etc/hosts(UNIX)またはC:\WINDOWS\system32\drivers\etc\hosts

ドメインがfoo.comの場合は、次の行を追加します。

127.0.0.1    local.foo.com

テストするときlocal.foo.comは、ブラウザーで開いてみてください。


4
MACでホストファイルを編集するには、ターミナルで「sudo pico / private / etc / hosts」を実行し、編集して「ctrl X」を押して保存します
Christoffer

@Christoffer:/ private / etcは/ etcへのシンボリックリンクであると私は信じているので、/ etc / hostsと/ private / etc / hostsは同じファイルです。
freeall 2013年

1
あなたは正しいです...しかし、私たちの一部はスプーンでフィードする必要があり、「open / etc / hosts」と言うだけでは十分ではありません;)しかし、FBはまだこのソリューションでローカルで失敗しています。私はFacebookのJSを使用していません
Christoffer 2013年

5
これまでは最近まで機能していましたがconnection refused、おそらくFacebook側の変更が原因で、ログインしようとすると例外が発生します。回避策のアイデアは大歓迎です。
onurmatik 2013

1
ローカルで実行されているRailsアプリにアクセスするためにこれを行う場合、Railsアプリは通常そのポートで実行されるため、ブラウザーでlocal.foo.com:3000`にアクセスする必要がある場合があります。
David Tuite 2013年

102

www.facebook.com/developers/でアプリを編集し、「サイトURL」を「http:// localhost / myapppath」に設定します。

完了したら、元に戻します。


19
Facebookはサーバーに「接続」しません。彼らのJSはそうします。そして、JSはブラウザーのコンテキストで実行されます。これは「localhost」がどこを指しているのかを知っています。
アレックス

localsite」を追加することはできません。そこにドットがあることを確認する必要がありました。これは機能しました: " local.site "
ピート

一部のFB機能はこれでは機能しません。たとえば、実績をFBサーバーに保存します。HTTPSが必要なので、私のlocalhostトリックは機能しません:(
Kostadin

2
アプリフォームの検証では、URLではlocalhostを使用する必要があるので注意してください。たとえばhttp://localhost/myapphttp://myapp
グラハム

1
別のポートを使用する場合は、次のパターンを使用します:localhost:xxxx)。例:localhost:8080
m0z4rt

77

https://developers.facebook.com/appsでテストアプリ(開発環境のみ)を作成し、set:Website with Facebook Loginプロパティをlocalhost:[port]設定に設定することをお勧めします。
このオプションは、ホストを変更する必要なく正常に動作します。公開したら
appIdを本番アプリに戻すことを忘れないでください。

編集 -最新のfbバージョンでは、settingsタブの下にあります。 ここに画像の説明を入力してください


2
または、dev、ステージング、ライブ用に個別の構成ファイルを使用します。
Chris Barry

1
「FacebookログインのあるWebサイト」が見つかりません。
14

5
「+ Add Platform」の大きな灰色の水平ボタンをクリックする必要があるようです。そこに「ウェブサイト」があります
Luciano

75

Facebookはテストバージョン機能を追加しました。

まず、アプリケーションのテストバージョンを追加します。テストアプリの作成

テストアプリを作成

次に、サイトのURLWebsiteの下の" http:// localhost "に変更しSave Changesを押します。

ここに画像の説明を入力してください

以上ですが、注意してください。アプリケーションIDアプリケーションシークレットキーは、アプリケーションとそのテストバージョンで異なります。


設定パネルのアプリドメインとは Facebookにログインしてイオンアプリを開発しています
Chirag thaker

1
@Chiragthakerこれは、プロダクションアプリをホストするドメインです
Erdal G.

3
私の場合、hostsテストサーバーでHTTPSを使用する必要がないため、ファイルを編集するよりもはるかに適切です。
PetrDlouhý19年

39

難しいことをする必要はありません!

Facebookの→設定→基本:
書き込みローカルホストアプリケーション ドメイン」フィールドに、次にをクリックして+追加プラットフォーム選択のWebサイトを

その後、サイトのURLフィールドにローカルホストのURLを入力します
(例:)http://localhost:1337/something

これにより、Facebookプラグインをローカルでテストできます。


1
パスfile:/// android_assets / wwwにあるファイルの回避策はありますか?FacebookはサイトURLのそのパスを許可しません
Vignesh Subramanian 2015

今すぐhttpsにする必要があります
Simon_Weaver 2018

@Simon_Weaverどこからこの情報を入手しましたか?どこかに文書化されていますか?
kolistivra 2018


あなたが送信したそのリンクからの@Simon_Weaver:「「localhost」アドレスでHTTPを使用することはできますが、アプリがまだ開発モードにあるときのみです。」
kolistivra 2018

5

Facebookは、facebookアプリでlocalhostをドメインとして設定する機能をランダムに無効にしているようです。最も簡単な回避策は、ローカルホストをWebにトンネルすることでした。これは、http://progrium.com/localtunnel/またはカスタムURL を使用して無料で実行できます(Facebookで毎回URLを変更する必要がないため、より簡単です)https://showoff.io


3
別のトンネルの選択はngrok.comです
Mohamed Selim

3

私は他のソリューションを使用できませんでした...私のために働いたのは、LocalTunnel.net(https://github.com/danielrmz/localtunnel-net-client)をインストールして、結果として得られたURLをFacebookで使用することでした。


1

FBがアプリ開発ページを再び変更し、「サーバーIPホワイトリスト」と呼ばれる機能を追加したようです。

  1. アプリに移動し、[設定]-> [詳細設定]タブを選択します
  2. パブリックIPを取得します(グーグルで「Whats My IP」をググると、グーグルが教えてくれます)
  3. パブリックIPをサーバーIPホワイトリストに追加し、下部にある[変更を保存]をクリックします

異なる場所の複数の開発者がサイトで作業している場合はどうなりますか?VM(Vagrant)を使用しているため、どの開発者でもIPは同じです。悲しいことに、FacebookはホワイトリストのローカルIPの使用を許可していません。動かない。
ProblemsOfSumit

私があなたのコメントを読んでいるなら、これは問題にはならないでしょう。パブリックIPを入力する必要があります。これは、開発者ごとに同じです(つまり、同じではありません)。異なるサイトに異なるIPを持つ複数の開発者がいる場合、VPNを使用してすべてのトラフィックを1つのIP経由でルーティングできます。
セブンセブン2014年

いいえ、異なる場所にある異なるマシンのパブリックIPはもちろん同じではありません。各マシンのローカルIPが同じであるだけです。(例:localhost)。何もルーティングしたくない。今のところ、FBアプリでlocalhost(単なる例)を使用しています-これは正常に動作します。しかし、ページが公開されたら、解決策が必要です。Facebookはアプリ内に「Test-Apps」を作成することを許可していますが、それが解決策かもしれませんが、まだ試していません。編集:それが解決策のようです
ProblemsOfSumit

1

キャンバスページに移動します。ブラウザで表示します。アドレスバーのテキストをコピーします。Facebookアプリに移動して、設定を編集します

ウェブサイト、サイトURLにそのアドレスを貼り付け

Facebookの統合で、キャンバスのURLにそのアドレスを再度貼り付けます

また、キャンバスURLまたはリダイレクトURLが必要な場合はどこでも同じコードです。

それがお役に立てば幸いです。


-6

2つのアプリを作成し、

では /initializers/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.