[Dialogflow] Обновление разрешения через формат Webhook (для push-уведомлений) - PullRequest
0 голосов
/ 06 июня 2018

ОРИГИНАЛЬНЫЙ ЗАПРОС: Я пытаюсь реализовать push-уведомления, следуя документации: https://developers.google.com/actions/assistant/updates/notifications

Я использую 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"
            }
        }
    }
}
}

Когда я делаю симуляцию, запрашивает разрешение на push,но не для намерения, которое я указал.

Я уверен, что проблема в 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"
                }
            }
        }
    }
}
}

1 Ответ

0 голосов
/ 06 июня 2018

Я считаю, 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"
        }
      }
    }
  }
}
...