92

ローカルホストからFacebookチャットに接続することを計画しています。Facebookからセッションキーを取得する必要があります。サイトのURLをとして指定した場合、localhost:8080またはip-address:8080機能しない場合。

2つの異なるAPIキーを使用して2つのアプリをセットアップする方法について読みました。1つはdevm/ cで実行され、もう1つはローカルホストで実行されます。

ローカルホストでFacebookアプリを実行する方法を誰かが説明できますか?

4

13 に答える 13

77

これについては少し前 にチュートリアルを書きました。

最も重要なポイントは「サイトのURL」です。

サイトのURL: http:// localhost / app_name /

フォルダ構造は次のようなものです。

app_name
¦   index.php
¦
+---canvas
¦   ¦   index.php
¦   ¦
¦   +---css
¦           main.css
¦           reset.css
¦
+---src
        facebook.php
        fb_ca_chain_bundle.crt

編集:
KavyaIPまたはポートがなくてもFBサーバーはどのようにローカルホストを認識しますか?

これはFacebookとは何の関係もないと思います。iframeパラメータはクライアント側からsrc読み込まれるため、ローカルURLをブラウザに直接配置した場合と同じように扱われると思います。

たとえば、オンラインサーバーにコンテンツ(例online.php) を含むファイルがあります。

<iframe src="http://localhost/test.php" width="100%" height="100%">
    <p>Not supported!</p>
</iframe>

そして、ローカルホストのルートディレクトリに次のファイルがありますtest.php

<?php echo "Hello from Localhost!"; ?>

ここにアクセスhttp://your_domain.com/online.phpすると、ローカルホストファイルのコンテンツが表示されます。

これが、リアルタイムサブスクリプションとコールバックの承認解除(言うまでもなく)がローカルホストURLで機能しない理由です!FacebookはこれらのURLにping(httpリクエストを送信)しますが、明らかにFacebookサーバーはそれらのURLをあなたのURLに変換しません!

于 2011-02-28T11:58:00.123 に答える
29

localhostを使用する場合:

Facebook->設定->基本で、フィールド「アプリドメイン」に「localhost」と入力し、「+プラットフォームの追加」をクリックして「Webサイト」を選択します。

「モバイルサイトURL」と「サイトURL」の2つのフィールドが作成され、「サイトURL」に「localhost」と再度書き込みます。

私のために働きます。

于 2014-06-19T10:52:54.750 に答える
23

'hosts'ファイルを編集して、ドメインのローカルバリエーションを作成することもできます。

実際のFacebookアプリケーションアドレスが「example.com」の場合、「localhost」を指す「hosts」ファイルに「localhost.example.com」(PCからのみアクセス可能)ドメインを作成し、このドメインでローカルWebサイトを実行できます。この方法でFacebookをだますことができます。

于 2013-01-04T21:08:49.293 に答える
7

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

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

于 2013-02-27T23:39:50.750 に答える
6

2013年8月。Facebookでは、「localhost:3000」のように、アプリのポートを使用してドメインを設定することはできません。

したがって、https://pagekite.netlocalhost:portを使用して、適切なドメインにトンネリングできます。

Railsの開発者はhttp://progrium.com/localtunnel/を無料で使用できます。

  • Facebookは、一度に1つのドメインのみをアプリに許可します。localhostとして別のものを追加しようとすると、ドメインに関するある種の異なるエラーが表示されます。コールバックとアプリドメインの設定には、一度に1つのドメインのみを使用してください。
于 2013-08-25T06:49:00.740 に答える
4

だから私はこれを今日機能させました。私のURLはhttp://localhost:8888です。私がFacebookに与えたドメインはlocalhostです。メソッドを使用してデータをプルしようとしたため、機能していないと思いましたFB.api。「未定義」の名前とソースのない画像を取得し続けたため、グラフにアクセスできませんでした。

後で、自分の問題は、の最初の引数を渡すだけで/meFB.apiトークンがないことに気づきました。したがって、関数を使用してトークンを取得する必要があります。トークンは引数FB.getLoginStatusに追加する必要があります。/me

于 2012-02-23T05:50:08.037 に答える
2

キャンバスのURLをhttp:// localhost/app_pathとして指定するだけです。

于 2011-02-28T06:36:55.587 に答える
2

わかりました。これらの回答がどうなっているのかわかりませんが、私の仕事の上級開発者からアドバイスを受けて、何がうまくいったかをお知らせします。私はRubyonRailsで作業しており、FacebookのJavaScriptコードを使用してアクセストークンを取得しています。

問題:認証を行うために、FacebookはアドレスバーからURLを取得し、それをファイルにあるものと比較しています。localhost:3000何らかの理由で使用することはできません。ただし、yoursite.devローカルサーバーを実行し、ローカルホストがポイントしていた場所をポイントするなどyoursite.dev、完全に構成されたドメイン名を使用できます。127.0.0.1:3000

ステップ1:Nginxをインストールまたは更新する

$ brew install nginx(インストール)または$ brew upgrade nginx(更新)

ステップ2:nginx構成ファイルを開きます

/usr/local/etc/nginx/nginx.conf(通常はここ)

/opt/boxen/config/nginx/nginx.conf(Boxenを使用する場合)

ステップ3http {}このコードをブロックに追加します

proxy_pass指し示したい場所に置き換えますyoursite.dev。私の場合、localhost:3000または同等のものを置き換えていました127.0.0.1:3000

server {
  listen       yoursite.dev:80;
  server_name  yoursite.dev;
  location / {
    proxy_pass http://127.0.0.1:3000;
  }
}

ステップ4/etc/hosts : Macでhostsファイルを編集して含める

127.0.0.1   yoursite.dev

このファイルは、ドメインをローカルホストに転送します。Nginxはローカルホストをリッスンし、ルールに一致する場合はリダイレクトします。

ステップ5:今後、開発環境を使用するたびに、Facebookが正しくログインするyoursite.devのではなく、アドレスバーでを使用します。localhost:3000

于 2014-11-08T06:58:39.883 に答える
1

Forwardは、Facebookアプリのローカル開発を支援するための優れたツールであり、SSLをサポートしているため、証明書の問題はありません。

https://forwardhq.com/in-use/facebook

免責事項:私は開発者の1人です

于 2013-02-06T01:00:38.200 に答える
0

httpsforlocalhostで実行するようにアプリを設定する必要があります

これに記載されている手順に従って、ubuntuでHTTPSを設定できます

https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04

次の手順を実行する必要があります。

apacheをインストールします(お持ちでない場合)

sudo apt-get install apache2

ステップ1-SSLモジュールをアクティブ化する

sudo a2enmod ssl
sudo service apache2 restart

ステップ2—新しいディレクトリを作成する

sudo mkdir /etc/apache2/ssl

ステップ3—自己署名SSL証明書を作成する

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache/ssl/apache.key -out /etc/apache2/ssl/apache.crt

このコマンドを使用すると、自己署名SSL証明書とそれを保護するサーバーキーの両方を作成し、両方を新しいディレクトリに配置します。最も重要な行は「共通名」です。ここに公式ドメイン名を入力するか、まだ持っていない場合はサイトのIPアドレスを入力します。

共通名(例:サーバーFQDNまたはあなたの名前)[]:example.comまたはlocalhost

ステップ4—証明書を設定する

sudo vim /etc/apache2/sites-available/default-ssl

次の行を見つけて、設定で編集します

ServerNamelocalhostまたはexample.com

SSLCertificateFile上のSSLEngine/etc/apache2/ssl/apache.crt

SSLCertificateKeyFile /etc/apache2/ssl/apache.key

ステップ5—新しい仮想ホストをアクティブ化する

sudo a2ensite default-ssl
sudo service apache2 reload
于 2014-04-25T13:40:12.467 に答える
0

トリック:

MAMPPROを使用して、次のものを作成します。サーバー名:ディスク上のサイトへのWebサイト(例:helloworld.com)の正確なアドレス

Facebookの場合: 元のサイトのURLも保持できます(例:helloworld.com)

これで、アドレスバーにWebサイトを入力すると、ローカルにいることがわかります。..そしてオンラインにしたいときは、MAMPPROでサーバーを非アクティブにします。

:)

于 2014-05-09T19:47:57.450 に答える
0

上記の答えはどれも私にはうまくいきませんでした。私はFBAPI2.5で実行しています。鉱山は、解決すると成功につながる問題の組み合わせでした

  1. テストアプリを作成して、そのように維持および管理され、公開時に無効にできることを確認します
  2. エラーメッセージを正しく読んでください:)-「クライアントOAuthログイン」で「WebOAuthログイン」を有効にする必要がありました
  3. https://www.whatismyip.com/を使用して、現在のIPを確認してください
  4. 私のドメイン、つまり 現在のIPを指すhttp://localhost.mydomain.comにAレコードを作成します

動的IPの変更としてはおそらく理想的ではなく、おそらくDynDNSまたは同様のものを使用して、IPをより「静的」にすることができますが、それは私にとってはうまくいきました

于 2016-03-10T20:34:22.983 に答える
0

私の場合、問題はlocalhost:4200からfacebookapiWebサイトへのCORSリクエストをクロームブロックしていることが明らかになりました。次の設定でChromeを実行します: "YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "c:/ chromeは、開発中は魅力のように機能しました。localhostがなくてもFacebookアプリの設定に追加されました。

于 2019-04-15T16:43:32.930 に答える