从Django中的Dialogflow访问webhook信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Django中的Dialogflow访问webhook信息相关的知识,希望对你有一定的参考价值。

我已配置Dialogflow以在询问名称后发出POST请求。当我在在线请求查看器中查看信息时,我可以在“查询字符串”部分中看到所需的信息:

>    "responseId": "045c0d0b-7b5b-448e...",  
> "queryResult": 
>     "queryText": "rob",
>     "parameters": 
>       "last-name": "lastname",
>       "given-name": "Rob"
>     ,

但是在Django中,我找不到此信息。我试图将完整的request和request.META保存在数据库中。

我的服务器上收到的请求看起来像:

'QUERY_STRING':'','REQUEST_METHOD':'POST','CONTENT_TYPE':'application / json','CONTENT_LENGTH':'5323','REQUEST_URI':'/ folder','PATH_INFO':'/ folder','DOCUMENT_ROOT':'/home/info/domains/mysite.info/private_html'、'SERVER_PROTOCOL':'HTTP / 1.1','HTTPS':'on','REMOTE_ADDR':'64 .233.172.250','REMOTE_PORT':'53451','SERVER_PORT':'443','SERVER_NAME':'mysite.info','HTTP_CONTENT_TYPE':'application / json','HTTP_HOST':'www.mysite.info','HTTP_CONTENT_LENGTH':'5323','HTTP_CONNECTION':'keep-alive','HTTP_ACCEPT':'/','HTTP_USER_AGENT':'Google-Dialogflow','HTTP_ACCEPT_ENCODING':'gzip,deflate,br','wsgi.input':,'wsgi.file_wrapper':,'wsgi.version':(1,0),'wsgi.errors':<_io.textiowrapper>,'wsgi.run_once':False,'wsgi.multithread':False,'wsgi.multiprocess':True,'wsgi.url_scheme':'https','uwsgi.version':b'2.0.18','uwsgi.node':b'server.mysite.info','SCRIPT_NAME':``

我在Uwsgi中使用nginx

我如何在Django中访问完整信息?

答案

我应该在视图中使用request.body。无需在Dialogflow中使用自定义标头。所有需要的信息都在请求中。

以上是关于从Django中的Dialogflow访问webhook信息的主要内容,如果未能解决你的问题,请参考以下文章

如何管理 Dialogflow / Api.ai 中的 5 秒响应超时限制?

Dialogflow 自定义身份验证

Dialogflow:在意图中引用输出上下文(即这个NodeJS客户端库的用途是什么?)

Dialogflow短语的变化

GCP 中 Stackdriver 中的 DialogFlow 日志没有 json_payload

Dialogflow V2:使用java生成访问令牌