原始请求:我正在尝试按照文档实施推送通知:https://developers.google.com/actions/assistant/updates/notifications
我正在使用带有webhooks的Dialogflow(在PHP中),文档在nodeJS中给出了示例
现在,我因为更新权限而被阻止,这是我的Webhook回复:
{
"source": "webhook",
"payload": {
"google": {
"expectUserResponse": true,
"systemIntent": {
"intent": "actions.intent.PERMISSION",
"data": {
"@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
"permissions": [
"UPDATE"
]
},
"updatePermission": {
"intent": "notification.simple.text"
}
}
}
}
}
当我进行模拟时,会询问我对推送的许可,但不是我指定的意图。
我很确定问题是updatePermission,有些问题一定是错的: 这是字段名称吗? 在意图中,我把我填写的对话流的意图名称,也许我必须使用一个使用行动?它的格式是好吗?
如果有人可以帮助我,或者只是给我一个关于更新权限的干净响应的示例。
谢谢!
解决方案
我刚刚发现原因,我的json不好,updatePermissionValueSpec必须是数据对象。
{
"source": "webhook",
"payload": {
"google": {
"expectUserResponse": true,
"systemIntent": {
"intent": "actions.intent.PERMISSION",
"data": {
"@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
"permissions": [
"UPDATE"
],
"updatePermissionValueSpec": {
"intent": "notification_simple_text"
}
}
}
}
}
}
答案 0 :(得分:2)
我认为updatePermission
应该命名为updatePermissionValueSpec
。
回复示例:
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "PLACEHOLDER"
}
}
]
},
"systemIntent": {
"intent": "actions.intent.PERMISSION",
"data": {
"@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
"permissions": [
"UPDATE"
],
"updatePermissionValueSpec": {
"intent": "intent_name"
}
}
}
}
}