Heroku でホストされている最初の Facebook アプリを開始しています。本番用に Heroku にアプリをセットアップし、開発用に自分のマシンでローカルに実行する別のアプリをセットアップしました。現在、アプリ (機能はほとんどありません) は localhost で問題なく実行されます。しかし、アプリが Facebook 機能を備えたローカルホストで典型的なキャンバス アプリのように実行できるかどうかはわかりません。たとえば、要求ダイアログはキャンバス アプリでローカルに実行されますか。開発中にその機能をローカルで使用できるようにする必要がありますか? もしそうなら、それを機能させるためにどのような手順を踏む必要がありますか?
2 に答える
違い
スタンドアロン サイトとキャンバス アプリ (またはページ タブ) の唯一の実際の違いは、signed_request
ページを読み込むときに渡されないことです。
アプリのダイアログは引き続き機能しますが、ページ上ではなくポップアップで表示されます。さらに、「 Facebook ログインを使用した Web サイト」(またはモバイル Web)http://localhost:5000
の下の Facebook アプリ設定でローカル開発 URL (例) を設定した場合と同様に、ユーザーをログインさせることができます。
また、Facebook が更新を通知するためにサイトにリクエストを送信するリアルタイム更新など、サーバー上でテストできないものもあります。
他にもあるかもしれませんが、今思いつくのはこんなところです。
ローカルで作業
する 私が通常行っているのは、ローカルで開発することです。欠落signed_request
しているを管理するために、スタブのみを提供するか、スタブが存在することを期待していないため、アプリも Facebook を使い果たす可能性があります。
ログイン方法については、キャンバスアプリを介したサーバー側のログインのほとんどがに依存するため、JS SDK のみに依存する傾向がありsigned_request
ます。また、JS SDK を介した UX ログインの方が優れていることがわかりました。
次に、ステージング用とリリース用の 2 つの FB アプリをセットアップするだけです。ステージング アプリはローカルの URL を指しているため、Facebook はそこからの接続を許可します。
この時点で、箱から出してすぐに問題なく動作するはずです。
しかし、アプリが Facebook 機能を備えたローカルホストで典型的なキャンバス アプリのように実行できるかどうかはわかりません。
アプリは、ローカルホスト上でも最終的な運用サーバー上でも同じように動作する必要があります。
Facebook のダイアログ (リクエスト、メッセージなど) は、ライブ サーバーと同様に、ローカル (開発) マシンに表示されます。私の場合、これを機能させるためにApp Domains
、 、 、Site URL
およびの値が異なるセカンダリ「facebook アプリ」をセットアップしますCanvas URL
。
これにより、localhost からアプリを実行できます。アプリがキャンバスのみの場合、iframe ( を指すSite URL
) 内で実行されますが、Facebook 内に表示されます。
また、ポップアップ ウィンドウではなく、Facebook のモーダル ボックスを表示したい場合は、 Facebook の JS APIが含まれていることを確認してください。
注意すべき唯一の違いは、FB API を介して localhost 開発サイトからページを共有する場合、Facebook はサイトをクロールして、必要なアイコン、画像、または説明を取得できないことです。