2

Web 上で、または Facebook 内のキャンバス アプリケーションとして利用できる Facebook アプリケーションを作成しました。私のセットアップは次のようなものです:

SERVER             |     FACEBOOK APP     |    CURRENTLY WORKS
-----------------------------------------------------------------------------
localhost          |     quotewarsdev     |   both in app and directly
-----------------------------------------------------------------------------
quotewars2012.com  |     quote_wars       |   only by accessing directly

同じセットアップを使用して、問題なく他の Facebook アプリを開発および展開しました。奇妙なことに、Facebook の本番アプリのリクエストの 90% は失敗します。アプリはほとんどのコンテンツをロードして<head>から、クラップアウトします。場合によっては、ページ全体が読み込まれます。

Heroku の cedar スタックで実行されている Django アプリ - 私は知っていますが、実際には本番環境に対応していません - しかし、アプリは Facebook の外で問題なく読み込まれるため、これが原因ではないと思います。

サーバーのログを追跡すると、サーバー<head>が Facebook がロードした の一部を介して CSS/JS アセットを送信していることがわかります。

  1. おそらく、Facebook はリクエストを事前に解析し、ここで説明されているようにそれを提供しようとしていますか?
  2. たぶん、Facebook は からのリクエストに対して文書化されていない読み込み時間制限を設けてい<head>ます
  3. たぶん、Facebook には文書化されていないリクエスト数の制限があり<head>ますか?

これらの理論はどれも、ローカルからの問題のない負荷を考えると意味がありません。

誰かが上記のいずれかを確認したり、他のアイデアを提供したりできますか?

<head>その間、サーバー ログにエラーの兆候はなく、Facebook アプリ インターフェイスにエラー レポートも表示されず、ブラウザに問題の兆候もないため、これをデバッグするためにタグをランダムに削除、並べ替え、およびフッツアップする必要があります。

4

1 に答える 1

0

これらの狂った文章が、最先端のHeroku開発と無関心なFacebookサポートの間の絶望的な泥沼に巻き込まれた1人の貧しい魂の目にさえ届くなら、この地球での私の時間は十分に費やされたでしょう。これが問題を解決する理由についての理論を提供するつもりはありませんが、これが私が今知っていることです。

この要求パスのどこかで、応答がバイトまたは文字で任意に切り捨てられていました。

Facebook canvas app >> Zerigo DNS add-on >> Cedar Stack / Gunicorn >> Django

アプリケーションのコンテンツ全体をプロジェクトグーテンベルクのテキストに置き換えることでこれを確認しました。確かに、応答は毎回同じ文字で散発的に切り捨てられます。

Zerigoを切り取り、Facebookキャンバスアプリケーションをherokuのアプリケーションアドレスに直接向けることで(e.g http://quotewars.herokuapp.com/)、問題が解決したようです。

于 2012-02-17T05:52:16.717 に答える