localhostでのFacebook開発


回答:


246

編集:2-15-2012これは、localhost WebサイトでFB認証を使用する方法です。

2つ目のFacebookアプリをセットアップする方がスケーラブルで便利だと思います。MyAppを構築している場合は、MyApp-devという名前の2つ目を作成します。

  • https://developers.facebook.com/appsで新しいアプリを作成します
  • (2012年2月15日新規)Website「アプリケーションとFacebookの統合方法を選択する」の下のチェックボックスをクリックします(最新のFacebookバージョンでは、「設定」>「基本」>「プラットフォームを追加」-「Webサイトを選択してください」)。
  • [ サイトのURL]フィールド([アプリのドメイン]フィールドではなく)をhttp://www.localhost:3000に設定します (このアドレスはRuby on Rails用です。必要に応じて変更してください)

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

  • アプリケーション初期化子に、環境を検出するためのコードを挿入します
    • Rails 3コードのサンプル
      Rails.env == '開発'の場合|| Rails.env == 'test'
        Rails.application.config.middleware.use OmniAuth :: Builder do
          プロバイダー:facebook、 'DEV_APP_ID'、 'DEV_APP_SECRET'
        終わり
      そうしないと
        #生産
        Rails.application.config.middleware.use OmniAuth :: Builder do
          プロバイダー:facebook、「PRODUCTION_APP_ID」、「PRODUCTION_APP_SECRET」
        終わり
      終わり
      

一度セットアップすると、同僚や他のマシンには追加のセットアップが不要になるため、この方法を選択します。


3
+1しましたこれは奇妙です!アプリのURLとしてlocalhostを追加することはできないと言われています。しかし、それは私にとってはうまくいきます。ありがとうございました!
Keyne Viana

15
これはまだあなたに当てはまりますか?localhost、127.0.0.1:5000、またはFacebookのアプリドメインに似たものを追加できないようです。
ピート

新しいドメインを作成しようとしたところ、「無効なドメイン」の問題が発生しました。漁獲をありがとう
エリック・フ

1
@zoltarSpeaks私の更新された答えを見てください。「アプリドメイン」ではなく、別のフィールドを使用する必要があります
Eric Hu

1
これは、initializers / devise.rbのconfig.omniauth:facebook、 'APP_KEY'、 'APP_SECRET'、:scope => "email、offline_access .."をオーバーライドしますか?
消えた

26

もちろん、app_domainにlocalhost( "http"なし)のURLを追加し、次にsite_url http://localhost(httpを使用)に追加することもできます。

更新

Facebookで少し変更します。アプリの設定に移動し、サイトのURLでhttp: //localhostアプリドメインを追加して空のままにします。


これは完全に機能します。フェンスの向こう側には何も必要ありません。
godspeedelbow

10
これは機能しなくなり、トップレベルドメインを追加できないというエラーが表示されます
Josh Bedo

20

これが私の設定で、PHP APIで正常に動作します。

アプリドメイン

   http://localhost

サイトのURL

   http://localhost:8082/

1
localhostが機能するには、これらのテキスト入力の両方を入力する必要がありました
paulruescher '18 / 10/18

19

注:2012年の時点で、Facebookは戻りURLとして「localhost」の登録を許可しています。他のプロバイダー(Microsoftプロバイダーなど)についても、同様の回避策が必要な場合があります。

Facebookに登録されている実際のドメイン名(my.really.own.domain.comなど)が必要な場合は、このドメインへのリクエストをローカルでマシンにリダイレクトできます。どのOSでもすぐに使用できる最も簡単な方法は、「hosts」ファイルを変更してドメインを127.0.0.1にマップすることです(http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAAおよびhttps:/を参照)。 /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file)。

私は通常、Fiddlerを使用してそれを行います(WindowsでローカルIISを使用)-http ://www.fiddler2.com/Fiddler/Dev/ScriptSamples.aspのサンプルを参照してください

if (oSession.HostnameIs("my.really.own.domain.com")) {
   oSession.host="localhost:80";
}

アプローチのホストファイルアプローチは、着信URLがlocalhost / 12.7.0.1である必要があるため、Visual Studio Development Serverでは機能しません。ホストを上書きするために(またはIISエクスプレスを使用して)作業する必要がある場合-IIS7 ExpressでのFiddlerの使用


9

FacebookはFBML Facebookアプリケーションの「localhost」コールバックURLを許可しなくなりました


Facebookのセキュリティ設定で、「セキュアブラウジング」が無効になっていることを確認してください。これにより、ローカルホストが有効になっている場合、ローカルホストを利用できなくなります。
supajb 2012

9

新しい開発センターにより、次のことがより簡単になりました。

1)アプリのドメインを空白のままにします。
2)[プラットフォームを追加]をクリックします
。3)サイトのURLは、ローカルホストの完全パスと同じにする必要があります。
4)変更を保存


1
これがローカルホストインストールに最適な方法であることを確認しました。上記のように、開発環境にベースURLを挿入するだけです。http://を使用せずに、FacebookがベースURLを追加します。シンプルなもの!おかげでジェイ
keade 2014年

1
その解決策は、ローカルホストで実行するときの私の問題を解決しました
Rola

8

回避策を発見しました:http://localtunnel.comを使用してローカルマシンにアクセスできるようにすることができます。リンクが一時的なドメインを指すように、アプリのコード/ htmlで使用される一部のURLを(一時的に)変更する必要がありますが、少なくともFacebookはマシンに到達できます。


7

アプリの基本設定(https://developers.facebook.com/apps)の[設定]-> [ 基本]-> [アプリをFacebookと統合する方法を選択...]をクリックします。

「サイトURL:」と「モバイルサイトURL:」を使用して、本番URLと開発URLをそれぞれ保持します。両方のサイトで認証が許可されます。私は認証にFacebookを使用しているだけなので、モバイルサイトのリダイレクト機能は必要ありません。通常、認証のテスト中に「モバイルサイトURL:」を「localhost:12345」サイトに変更し、完了したら通常に戻します。


5

有る !私のソリューションはアプリを作成するときに機能しますが、WebサイトでFacebookの認証を使用する必要があります。以下のこのソリューションは、FBページに統合されたアプリを作成する場合は必要ありません。

重要なのは、アプリのFacebook設定ページでドメインとして「localhost」を指定できないことです。セキュリティ上の理由?

OSX / Linux etc / hostsのホストファイルに移動し、次の行を追加する必要があります。127.0.0.1 dev.yourdomain.com

あなたが好きなものを置くドメイン。1つの間違いは、次の行を追加することです:localhost dev.yourdomain.com(少なくともosx Snow Leopardでは機能しません)。

次に、DNSキャッシュをクリアする必要があります。OSXの場合:端末でdscacheutil -flushcacheと入力します。最後に、オンラインのFacebook開発者Webサイトに戻り、アプリの構成ページで、ドメイン「dev.yourdomain.com」を追加できます。

Mamp、Easyphpなどのプログラムを使用する場合は、Apacheのポートが80であることを確認してください。

このソリューションはホストファイルも持っているため、Windowsで機能するはずです。それにもかかわらず、私がWindows 7でこのファイルを使用しないことを覚えている限り、このトリックはウィンドウにhostsファイルを使用させる方法を見つければ機能するはずです。


win8.1 c:\ windows \ system32 \ drivers \ etc \ hostsで動作します。「ホストリゾルバキャッシュ」をchrome URL = chrome:// net-internals /#dns
rnrneverdies

5

Facebook製品の「facebookログイン」を選択し、localhost urlを指定した場合でも、クライアントOAuthログイン、「Web OAuthログイン」、「組み込みブラウザーOAuthログイン」を有効にする必要があります。 ここに画像の説明を入力してください


これは問題を進めるのに役立ちました。2018年2月23日現在のFBからのメッセージ:3月に、アプリの設定にセキュリティ更新を行い、以下の[有効なOAuthリダイレクトURI]フィールドにリストされていないURIからの呼び出しを無効にします。プラットフォームで確認しましたが、リダイレクトURIに新しい厳密モードを要求することで、アプリまたはウェブサイトを保護したいと考えています。
Tim Tyler、

1
Fbでは、コールバックにhttpsが必要になりました。Localhostはhttpsをサポートしていません。
huuthang

1
@huuthangなので、このQ / A全体は非推奨です。
RGB


3

Visual Studio開発用Webサーバーを使用してアプリケーションを開発できるはずです。http://www.facebook.com/developers/で新しいFaceBookアプリケーションを開始します。次に、サイトのURLとキャンバスのURLの設定を、Webサイトの実行中のインスタンスに設定します。例:http:// localhost:1062 /

FaceBookを使い始めるときに役立つはずのリンクをいくつか紹介します。

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/
  2. http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html
  3. http://apps.facebook.com/thinkdiffdemo/

お役に立てれば。


3

これを試して - -

https://www.facebook.com/help/community/question/?id=589302607826562

1-[アプリ]をクリックして、アプリを選択します。

2-画面の左側にある[設定]ボタンをクリックします。

3-基本設定で、設定の構成の下にある[プラットフォームの追加]ボタンをクリックします。

4-プラットフォームダイアログで[Webサイト]を選択します。

5-URLを入力します(localhostはここで機能します)。

6-[App Domains]テキスト入力で、URLのドメインと一致するドメインを追加します。

7-設定を保存します。


2

次のようにアプリを登録したとします。

app.domain.com

/ etc / hostsファイルを追加して、

127.0.0.1 dev01.app.domain.com

次に、Apache構成を変更します。

ServerName dev01.app.domain.com

Apacheを再起動します。

一部の呼び出しでXMLパラメーターとして使用するには、URLを変数に配置する必要があります。

<fb:login-button registration-url="http://<?=$URL?>/register" />

2

上位投票の回答にコメントするだけの十分な信用はありませんが、少なくとも私のレール環境(4を実行)では、レールsはであり http://localhost:3000、ではありません http://www.localhost:3000。に変更したところhttp://localhost:3000、問題なく動作しました。hostsファイルを編集する必要はありません。


2

app domain : localhost

site URL : http://localhost:4440/

新しいUIで私のために働いた。


0

私のソリューションはlocalhost .....で正常に動作します。サイトURLの使用http://localhost/ とアプリドメインの使用では、localhost/folder_name Restすべてが同じです.......正常に動作します(ただし、App Domain..Appでレッドフラグが表示されます)


0

Facebookのログインタブの下にあるアプリダッシュボードに移動して、[設定を保存]をクリックし、[HTTPSを強制する]を選択するのは簡単です。設定を保存しますここに画像の説明を入力してください


0

アプリケーションはlocalhost:3000で問題なく実行されます。アプリケーションが本番モードの場合にアプリケーションが稼働するhttpsアドレスを指定する必要があります。
オプション2はURLを提供するか、サンプルアプリケーションをプロダクションモードで使用できるheroku Webサイトです。

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


0

最新の更新:開発でテストしている場合は、URLを指定する必要はありません。フィールドは空のままにできます。アプリが開発モードであることを確認します。そうでない場合は、ステータスをライブからオフにします。

サイトのURL、アプリのドメイン、有効なリダイレクトOAuth URIを提供する必要はありません。

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


1
アプリを「ライブ」から「開発」に切り替えると、開発マシンのローカルホストからログインできるようになりますが、すべてのライブユーザーはログインできなくなります。
webdevbyjoss

私はこれを実行しましたが、それでもエラーが発生し、fbボタンが表示されませんでした
joslinm '31 / 10/31

アプリを作成したら、[テストアプリの作成]ボタンをクリックして、開発/テスト専用のアプリを取得します。それでも、アプリドメインに「localhost」を追加する必要がありました。
なし

@ J.Money今は変わるかもしれないと思います。知らせてくれてありがとうございます。
Vigneshwaran Sivalingam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.