Проблема фейсбука + джанго - PullRequest
3 голосов
/ 15 мая 2009

Я пытаюсь написать приложение для Facebook, где пользователь может видеть историю статуса своих друзей. Кажется, все работает нормально, пока я не попытаюсь сохранить информацию о состоянии в моей БД. вот код:

   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 голосов
/ 30 апреля 2012

Сначала вы должны проверить, получаете ли вы результаты от этого,

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

Убедитесь, что результаты в правильном формате, требуемом вашей моделью (uid - целое число, время - целое число, а сообщение - строка.

Снова убедитесь, что результатом является допустимый объект Python, а не строка / объект JSON.

Помните, что python не полностью совместим с JSON, поэтому, если результатом является JSON, сделайте это, чтобы преобразовать его в объект 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

Проверьте, является ли теперь результат списком словарей {"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()

И у вас не должно быть ошибок сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...