Dialogflow-fulfillment-nodejs: Fails to parse default console messages with custom payload

Created on 15 Oct 2018  路  2Comments  路  Source: dialogflow/dialogflow-fulfillment-nodejs

Dialogflow Console allows to add Custom Payload to Default platform.

Webhook request for such an intent with custom payload in Default platform fails to parse with below exception.

Error: Platform can NOT be empty 
 at new Payload (/app/node_modules/dialogflow-fulfillment/src/rich-responses/payload-response.js:60:13)
 at Object.convertPayloadJson_ [as payload] (/app/node_modules/dialogflow-fulfillment/src/v2-agent.js:439:12)
 at consoleMessageList.forEach (/app/node_modules/dialogflow-fulfillment/src/v2-agent.js:374:64)
 at Array.forEach (<anonymous>)
 at V2Agent.getConsoleMessages_ (/app/node_modules/dialogflow-fulfillment/src/v2-agent.js:369:24)
 at V2Agent.processRequest_ (/app/node_modules/dialogflow-fulfillment/src/v2-agent.js:163:41)
 at new WebhookClient (/app/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:238:17)
 at APP_

Can we get support for custom payload with Default platform?

bug

All 2 comments

Currently worked around by setting platform to 'PLATFORM_UNSPECIFIED' in request before initializing the WebhookClient

if (!request.body.queryResult.fulfillmentMessages)
    return;
request.body.queryResult.fulfillmentMessages = request.body.queryResult.fulfillmentMessages.map(m => {
    if (!m.platform)
        m.platform = 'PLATFORM_UNSPECIFIED';
    return m;
});

It is 2020 and the error persists.
I have to remove the payload for the webhook call to not send an unhandled promise warning when there is payload

Was this page helpful?
0 / 5 - 0 ratings