2

我已经在我的 django 应用程序中实现了一个非常基本且按教程提供的 Pusher 触发器。起初它工作得很好,但经过几次提交后,我遇到了以下异常:

"object of type 'NoneType' has no len()"

在以下第二行中:

p = pusher.Pusher()
p[page_key].trigger('page_update', {'msgid' : message.id})

不同的或空的 dict 产生相同的结果,与将 page_key 更改为 string 而不是 unicode 相同 - 没有。还要注意 p 和 p.trigger 的 type() 给出了逻辑结果,它们绝对不是 None。

这条线在某些情况下有效(我不知道它们有什么特别之处)并且正如我所提到的那样在过去一直有效,但我不知道我做错了什么。

似乎最后的提交都与 Pusher 无关,所以我很无奈。在网上搜索这个异常并没有什么成果,而且通常没有足够的关于 django + Pusher 的文档。

这可能是我做错的其他事情,但我不知道从哪里开始寻找。

任何帮助将不胜感激。

Traceback:

  79.         p[page_key].trigger('page_update', {'msgid' : message.id})
File "/usr/local/lib/python2.7/dist-packages/pusher/__init__.py" in trigger
  41.         status = self.send_request(self.signed_query(event, json_data, socket_id), json_data)
File "/usr/local/lib/python2.7/dist-packages/pusher/__init__.py" in signed_query
  54.         signature = hmac.new(self.pusher.secret, string_to_sign, hashlib.sha256).hexdigest()
File "/usr/lib/python2.7/hmac.py" in new
  133.     return HMAC(key, msg, digestmod)
File "/usr/lib/python2.7/hmac.py" in __init__
  68.         if len(key) > blocksize:

Exception Type: TypeError at /sphere/comment
Exception Value: object of type 'NoneType' has no len()
4

1 回答 1

1

self.pusher.secret 是 None 而不是字符串。您的推送器设置没有被拾取吗?

于 2012-04-18T22:40:32.803 回答