problemă Facebook + Django

voturi
3

Am încercat să scrie o aplicație Facebook în cazul în care utilizatorul poate vedea istoricul starea de prietenii săi. Totul pare să funcționeze bine, până când am încerca să salveze informațiile de stare în DB meu. aici este codul:

   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)

Deci, ca rezultat dă-mi toate informațiile statutului. astfel încât problema mea este eroarea sa dau, atunci când încerc să-l salveze.

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


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

eroare: Erori în timp ce încărcarea paginii din aplicația

HTTP a primit codul de eroare 500 în timpul încărcării

Deci, cum pot rezolva această problemă.

Mulțumiri.

Întrebat 15/05/2009 la 09:12
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

În primul rând ar trebui să verificați dacă primiți rezultatele de la acest lucru,

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

Asigurați-vă că rezultatele sunt în formatul corect cerut de modelul dvs. (uid este număr întreg, timpul este întreg și mesajul este șir.

Din nou, asigurați-vă că rezultatul este un obiect Python valid și nu un șir JSON / obiect.

Amintiți-vă Python nu este pe deplin compatibil cu JSON, deci, dacă rezultatul este JSON apoi face acest lucru pentru a converti la Python obiect,

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

Verificați dacă acum rezultatul este o listă de dicționare { „timp“: 123456, „messaage“: „xyz“}.

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

Și nu ar trebui să aibă nici o eroare acum.

Publicat 30/04/2012 la 00:46
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more