Facebook iframe で表示しようとしている非常に単純なページがあります。これは Django ビューですが、リクエストが POST または GET のどちらで送信されたかには依存しません。単純な HTML を返すだけです。
リンクを直接クリックすると、正しく表示されます。Firefox で iframe を右クリックし、そのフレームのみを表示するオプションを選択すると、正しく表示されます。ただし、Facebook アプリを表示すると、何も表示されません。
アプリのリンクは次のとおりです: http://apps.facebook.com/fireflietest/これはhttp://www.fireflie.com/facebook/ を指しています
私の非常に単純なビューのコードは次のとおりです。
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt, csrf_protect
@csrf_exempt
def facebook(request):
body = """
<html>
<head><title>Fireflie on Facebook</title></head>
<body>Hello, Facebook!</body>
</html>
"""
return HttpResponse(body)
テスト目的で、そのページに POST する小さな HTML フォームを作成しました。それは正常に動作します。また、Facebook デバッグ ツールを実行したところ、「スクレーパー」がコンテンツを正しくプルしていることを示しました。
これは、両方の回で 200 OK を返していることを示すサーバー ログです。
24.210.144.32 - - [15/Jun/2012:18:27:18 +0000] "POST /facebook/ HTTP/1.1" 200 31 "http://apps.facebook.com/fireflietest/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19"
24.210.144.32 - - [15/Jun/2012:18:27:26 +0000] "GET /facebook/ HTTP/1.1" 200 67 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19"
最後に、Chrome の開発者ツールを使用して応答オブジェクトを掘り下げてみましたが、iframe バージョンを表示したときに返されるのはコンテンツ ヘッダーだけのようです。
ここで何が起こっているのか誰にもわかりませんか?または、この問題をさらにデバッグする方法についてのアイデアはありますか? ありがとう。
編集: Facebook アプリの URL をコピーして同じ場所に貼り付けました。何か間違ったことをした場合に備えて、ここでもう一度複製します。なぜ 404 がスローされたのかはわかりません。
アドレスバーから直接コピーして貼り付けます: http://apps.facebook.com/fireflietest/
更新:サンドボックス モードをオフにする必要がありました。これ以上 404 が表示されることはありません。もちろん、iFrame が空で表示されるという元の問題がまだ発生しています。ありがとう!
更新 2: (私の Django ユーザー グループ ヘッドからコピー & ペースト)
私はこの問題を診断しようとしています。しかし、何が起こっているのかわかりません。
問題がどこにあるかを確認するために、Nginx で単純な .html ページを提供してみました。(エラーにより)適切に機能しませんでしたが、実際にはエラーが表示されました。そこにあった問題は、NGINX の静的ページに POST できないことです。とにかく、静的ページを読み込もうとしているわけではありません。
ログファイルを調べました。私のアプリケーションがタイムアウトしていることが判明しました。他の場所ではタイムアウトしないため、意味がありません。
奇妙なことが起こっていることを示すいくつかのログがあります。問題をデバッグする方法がわかりません。私が読んでいるものから - これが私が描いていることです。
Nginx はリクエストを適切に受け取ります。Nginx はリクエストを uWSGI アプリケーション (django) にプッシュします。Django はリクエストを正常に取得します。Django は応答しようとしますが、ここで問題が発生するはずです。
問題が何であるかはわかりませんが、Facebook の iframe 内にいることに関係があります。(リモート iframe 全般についてはまだ確認していません。次に行います)
uWSGI Logs:
[pid: 11059|app: 0|req: 3/4] 24.210.144.32 () {52 vars in 1170 bytes} [Tue Jun 19 14:24:03 2012] POST /facebook/ => generated 0 bytes in 444 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)
[pid: 11345|app: 0|req: 1/1] 24.210.144.32 () {52 vars in 1170 bytes} [Tue Jun 19 14:24:31 2012] POST /facebook/ => generated 2970 bytes in 333 msecs (HTTP/1.1 200) 4 headers in 128 bytes (1 switches on core 0)
[pid: 11353|app: 0|req: 3/31] 24.210.144.32 () {52 vars in 1172 bytes} [Tue Jun 19 14:31:04 2012] POST /facebook/ => generated 2970 bytes in 3 msecs (HTTP/1.1 200) 4 headers in 128 bytes (1 switches on core 0)
[pid: 11954|app: 0|req: 1/14] 24.210.144.32 () {52 vars in 1216 bytes} [Tue Jun 19 14:35:04 2012] POST /facebook/ => generated 2970 bytes in 343 msecs (HTTP/1.1 200) 4 headers in 128 bytes (1 switches on core 0)
[pid: 11950|app: 0|req: 2/31] 24.210.144.32 () {52 vars in 1211 bytes} [Tue Jun 19 14:48:57 2012] POST /facebook/ => generated 2970 bytes in 3 msecs (HTTP/1.1 200) 4 headers in 128 bytes (1 switches on core 0)
[pid: 11962|app: 0|req: 4/57] 24.210.144.32 () {52 vars in 1216 bytes} [Tue Jun 19 14:53:43 2012] POST /facebook/ => generated 2970 bytes in 2 msecs (HTTP/1.1 200) 4 headers in 128 bytes (1 switches on core 0)
Nginx Error Logs:
2012/06/19 20:02:30 [error] 11164#0: *29617 readv() failed (104: Connection reset by peer) while reading upstream, client: 24.210.144.32, server: fireflie.com, request: "POST /facebook/ HTTP/1.1", upstream: "uwsgi://<commented out for security>", host: "www.fireflie.com", referrer: "http://apps.facebook.com/253156011452899/"
Nginx Access Log:
24.210.144.32 - - [19/Jun/2012:20:02:30 +0000] "POST /facebook/ HTTP/1.1" 200 31 "http://apps.facebook.com/253156011452899/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19"
24.210.144.32 - - [19/Jun/2012:20:03:29 +0000] "-" 408 0 "-" "-"
24.210.144.32 - - [19/Jun/2012:20:03:29 +0000] "-" 408 0 "-" "-"