我正在使用Dialogflow v2和Node.js客户端SDK开发用于Messenger的聊天机器人。但是我对自定义有效载荷有疑问。当我使用Dialogflow提供的控制台时,我收到如下响应:

{ "payload": { "facebook": { "attachment": { "payload": { ...

但是,当我从JS服务器获得响应时,自定义有效负载已被序列化。这是我收到的对象:
{ facebook: { structValue: { fields: [Object] }, kind: 'structValue' } }

为了获得与Dialogflow中提供的相同的自定义有效负载结构,是否可以反序列化此对象?

先感谢您。

最佳答案

这是使用Struct protocols构建的

为了进行转换,您需要使用Google proto缓冲区,即google.protobuf
我用下面的代码来做到这一点。

import google.protobuf  as pf
pf.json_format.MessageToJson(response.query_result.fulfillment_messages[1].payload, including_default_value_fields=False)

关于chatbot - 如何在Dialogflow v2中反序列化自定义有效负载响应?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49046140/

10-13 00:21