2009-05-15 11 views
3

私は彼の友人のステータス履歴を見ることができるFacebookのアプリを書こうとしています。 私のDBに状態情報を保存しようとするまで、すべてうまくいくようです。だから、私の状況のすべての情報を与える結果Facebookの問題+ django

class UserStatus(models.Model): 
     facebookid = models.IntegerField() 
     time = models.IntegerField() 
     status_msg = models.CharField(max_length = 2000) 



@facebook.require_login() 
def canvas(request): 
    # Get the User object 
    user, created = FacebookUser.objects.get_or_create(id = request.facebook.uid) 
    user_lastname = request.facebook.users.getInfo([request.facebook.uid], ['last_name'])[0]['last_name'] 
    query = "SELECT time,message FROM status WHERE uid=%s" % request.facebook.uid 
    result = request.facebook.fql.query(query) 

:ここ はコードです。 私はそれを保存しようとすると、私の問題は、エラーを与えるです。

userstatus = UserStatus() 
    for item in result: 
    userstatus.facebookid = request.facebook.uid 
    userstatus.time = item.time 


userstatus.msg = item.message 
    userstatus.save() 

エラー:

のロード中にアプリケーション

からロードページしばらく エラーは、どのように私はこの問題を解決することができHTTPエラーコード500を受信しました。

ありがとうございました。あなたがこのことから結果を取得している場合

+1

詳細情報を提供する必要があります。正確なエラーとトレースバックは何ですか? –

+0

問題は、それがこのエラーを与えるたびに次のとおりです。 エラーをhttp://taramsfb.tarams.com/facebook/ のロード中にアプリケーション からロードするページが少数のよじれFacebookと残っていたHTTPエラーコード500を受信しながら、 fblaspalのメーカーは、鉄を削っている。これらの問題を解決する際には、辛抱強くお礼申し上げます。あなたの問題は記録されています - それが続くなら、数日後に戻ってください。ありがとう! 問題がどこにあるかわかりません。 – user102724

+2

facebookアプリが開発モードになっている限り、エラーページのブラウザで 'ソースを表示'し、実際のDjangoトレースバック(コメントアウト)を見ることができるはずです。 –

答えて

0

まず、(uidが整数である、時間が整数とメッセージ文字列です結果は、モデルによって必要な正しい形式になっていることを確認し、

result = request.facebook.fql.query(query) 

をチェックする必要があります。

再びその結果、有効なPythonのオブジェクトではなくJSON文字列/オブジェクトであることを確認してください。結果はJSONであるならば、Pythonオブジェクトに変換し、これを行うよう

はPythonはJSONと完全に互換性がありません覚えて、

import simplejson 
result = simpljson.loads(result) # if result was a JSON string 
result = simpljson.loads(simplejson.dumps(result)) # if result was a JSON object 

結果が辞書のリスト{"time":123456、 "messaage": "xyz"}であることを確認します。

for item in result: 
    userstatus = UserStatus() 
    userstatus.facebookid = request.facebook.uid 
    userstatus.time = item["time"] 
    userstatus.msg = item["message"] 
    userstatus.save() 

これでエラーは発生しません。

+0

StakcOverfolwヒント1:回答する前に必ず質問の日付を確認してください。 :( –