Problema de Facebook + django

votos
3

Intento escribir una aplicación de Facebook donde el usuario pueda ver el historial de estado de sus amigos. Todo parece funcionar bien hasta que intento guardar la información de estado en mi base de datos. aquí está el código:

   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)

Entonces, dame toda la información del estado. entonces mi problema es dar error cuando intento guardarlo.

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


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

error: Errores al cargar la página desde la aplicación

Recibió el código de error HTTP 500 mientras cargaba

Entonces, ¿cómo puedo solucionar esto?

Gracias.

Publicado el 15/05/2009 a las 09:12
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

En primer lugar, debe comprobar si está recibiendo resultados de este,

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

Asegúrese de que los resultados están en formato correcto requerido por el modelo (UID es entero, el tiempo es número entero y el mensaje es una cadena.

Una vez más asegurarse de que resultado es un objeto Python válida y no una cadena JSON / objeto.

Recuerde pitón no es totalmente compatible con JSON modo si el resultado se JSON a continuación, hacer esto para convertirlo en objetos Python,

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

Compruebe si ahora el resultado es una lista de los diccionarios { "tiempo": 123456, "messaage": "xyz"}.

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

Y que no debería tener ningún error ahora.

Respondida el 30/04/2012 a las 00:46
fuente por usuario

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