调用云功能
当唤起云功能的时候, Stackchat可以提供清晰的结构数据用来支持功能执行。功能中会接收到两段参数:
`userData' 在每次云功能唤醒时会提供包含如下所有Meta和Custom的内容。
// userData -
// - metaData -
// - userId
// - signedUpAt
// - conversationStarted
// - isAuthenticated
// - email
// - givenName
// - surname
// - lastUtterance
// - rawNlpResponse
// - previousFlow
// - currentFlow
// - slotData -
// - All custom slot variables
原数据中填写的数据字段会根据你的机器人在Channel的沟通与描述而产生变化.
其中需要额外注意 rawNlpResponse
数据字段。如果你的机器人有办法可以通过NLP-based navigation或者active navigation方式触发流程, 该数据字段可能就会过时, 因为它总是需要NLP服务提供最新的回复。
rawNlpResponse
会以如下形式呈现。
{
dateReceived
responseData
}
dateReceived
可以用于验证时间并确认NLP回复是与唤起的云功能相关,responseData
会根据使用的NLP服务产生变化.
第二个会发送的参数是postBackPayload
. 它仅会在云功能通过postback carousel button 唤醒时传输并会反馈该按钮的负载。它可以用来执行一些功能例如回传产品ID。如果云功能是通过其它方式触发,该参数将不会包含在内。
你的云功能现在将可以通过Dynamic Content Toolkit的编程和回传数据来执行。在大部分情况下, 它将通过非同步联络的方式给到你的商业API,以用来回传promisePromise<dc.DynamicContentItem[]>
。在极少情况下当你的动态内容已经生成,你可以使用dc.DynamicContentItem[]
替代。