我在我的 Django 应用程序中实现了一个非常基本的教程 Pusher 触发器。 起初它运行良好,但在几次提交后我遇到了以下异常:
"object of type 'NoneType' has no len()"
在以下第二行中:
p = pusher.Pusher()
p[page_key].trigger('page_update', {'msgid' : message.id})
不同的或空的 dict 产生相同的结果,与将 page_key 更改为字符串而不是 unicode 相同 - 没有。 另请注意,p 和 p.trigger 的 type() 给出了合乎逻辑的结果,而且它们绝对不是 None。
这条线在某些情况下有效(我不知道它们有什么特别之处)并且正如我提到的那样在过去有效,但我无法弄清楚我做错了什么。
看来最后的commit都和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()
请您参考如下方法:
self.pusher.secret 是 None 而不是字符串。您的推送器设置是否未被接收?
