我跟随https://abhaykashyap.com/blog/post/tutorial-how-build-facebook-messenger-bot-using-django-ngrok开发机器人。我的代码如下:
导入json,请求,随机,重新
来自pprint import pprint
来自django.utils.datastructures导入MultiValueDictKeyError
来自django.views import generic
来自django.http.response导入HttpResponse
来自django.views.decorators.csrf import csrf_exempt
来自django.utils.decorators导入method_decorator
VERIFY_TOKEN =" 2318934571"
类MyFirstChatBotView(generic.View):
def get(self, request, *args, **kwargs):
if self.request.GET['hub.verify_token'] == VERIFY_TOKEN:
return HttpResponse(self.request.GET['hub.challenge'])
else:
return HttpResponse('Error, invalid token')
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return generic.View.dispatch(self, request, *args, **kwargs)
来自django.conf.urls import include,url
来自.views的导入MyFirstChatBotView 和url模式如下: urlpatterns = [ url(r' ^ 66d2b8f4a09cd35cb23076a1da5d51529136a3373fd570b122 /?$',MyFirstChatBotView.as_view()) ]
但是我得到了MultiValueDictKeyError,如下所示: MultiValueDictKeyError at / fb_MyFirstChatBot / 66d2b8f4a09cd35cb23076a1da5d51529136a3373fd570b122 / "' hub.verify_token'" 请求方法:GET 请求网址:
Django版本:1.10.3
异常类型:MultiValueDictKeyError
例外值:
"' hub.verify_token'"
例外地点:
getitem 中的C:\ Python27 \ lib \ site-packages \ django \ utils \ datastructures.py,第85行
Python可执行文件:
C:\ Python27 \ python.exe
Python版本:2.7.10
请帮助我。谢谢提前
答案 0 :(得分:-1)
当前异常显示您对请求所期望的变量hub.verify_token
不存在。您可以将其打包在try-except
块中,也可以使用self.request.GET.get('hub.verify_token', <some_default_value>)
。您确定hub.verify_token
变量拼写正确吗?因为它没有附带请求