I am using the Dialogflow API for Nodejs.
This API is apparently implemented by Google via protocol buffers, though it presents a simple JavaScript/JSON based interface that I have used successfully for simple queries.
In order to request Dialogflow send me response data for a particular platform, I apparently need to encode a simple JSON object into protobuf format. The linked source gives an example that makes use of a "structjson util" that can presumably be used to do the necessary conversion:
const structjson = require('./structjson.js');
const request = {
/* other properties omitted */
queryParams: {
payload: structjson.jsonToStructProto({source: 'ACTIONS_ON_GOOGLE'})
},
};
Unfortunately, the link given for the structjson util is dead, and I can find no other reference to it.
I don't need to do anything other than encode a simple JSON object, as per the example above. Is there a simple utility (either runtime or mand line) that can be used to do that without having to do major surgery with the protobuf toolchain?
I am using the Dialogflow API for Nodejs.
This API is apparently implemented by Google via protocol buffers, though it presents a simple JavaScript/JSON based interface that I have used successfully for simple queries.
In order to request Dialogflow send me response data for a particular platform, I apparently need to encode a simple JSON object into protobuf format. The linked source gives an example that makes use of a "structjson util" that can presumably be used to do the necessary conversion:
const structjson = require('./structjson.js');
const request = {
/* other properties omitted */
queryParams: {
payload: structjson.jsonToStructProto({source: 'ACTIONS_ON_GOOGLE'})
},
};
Unfortunately, the link given for the structjson util is dead, and I can find no other reference to it.
I don't need to do anything other than encode a simple JSON object, as per the example above. Is there a simple utility (either runtime or mand line) that can be used to do that without having to do major surgery with the protobuf toolchain?
Share Improve this question asked Dec 30, 2019 at 21:09 Myk WillisMyk Willis 12.9k5 gold badges49 silver badges64 bronze badges 2- 1 found the file in history github./googleapis/nodejs-dialogflow/blob/… – karthick Commented Dec 30, 2019 at 21:21
- thanks @karthick that's very helpful. I've also found that the samples were updated to use a new library for the conversion; I'll follow up with an answer to that effect. – Myk Willis Commented Dec 30, 2019 at 21:59
1 Answer
Reset to default 10It seems the Google Dialogflow samples were updated to use the pb-util package for JSON-to-protobuf conversions. This package provides a method for encoding JSON to protobuf easily, so the example from the original question simply bees:
const {struct} = require('pb-util');
const request = {
/* other properties omitted */
queryParams: {
payload: struct.encode({source: 'ACTIONS_ON_GOOGLE'})
},
};
Thanks also to @karthick for locating the original structjson file in the Dialogflow samples repo.