У меня есть приложение Express, которое поддерживает аутентификацию и авторизацию Google через паспорт. Я начал интегрировать его с Google Assistant, и дела шли довольно хорошо, но у меня возникли проблемы со связыванием аккаунта, как описано в https://developers.google.com/actions/identity/google-sign-in#start_the_authentication_flow
Используя метод в документах на https://codelabs.developers.google.com/codelabs/actions-2/#4 Я смог получить информацию о пользователе, но при попытке изменить для поддержки
app.intent('Start Signin', conv => {
conv.ask(new SignIn('To get your account details'))
})
и
app.intent('Get Signin', (conv, params, signin) => { ...}
диалоговый поток всегда возвращается к моему стандартному намерению возврата, и я получаю сообщение об ошибке в консоли Express
Error: Dialogflow IntentHandler not found for intent: Default Fallback Intent
Мое намерение диалогового потока настроено на использование webhook, и другие намерения работают нормально (пока я не добавлю эти намерения входа!)
Чтение этой цепочки Dialogflow IntentHandler не найден для намерения: myIntent (Dialogflow V2) было предложено использовать имя намерения, а не имя действия, поэтому я проверяю свои Действия в симуляторе Google и запрос содержит :
"inputs": [
{
"intent": "actions.intent.SIGN_IN",
"rawInputs": [
{
"inputType": "KEYBOARD"
}
],
"arguments": [
{
"name": "SIGN_IN",
"extension": {
"@type": "type.googleapis.com/google.actions.v2.SignInValue",
"status": "OK"
}
}
]
}
],
, поэтому я попытался изменить имя намерения Dialogflow на actions.intent.SIGN_IN
и соответственно изменить имя намерения в приложении Express, но это не имеет значения.
Ответ симулятора включает в себя:
"responseMetadata": {
"status": {
"code": 14,
"message": "Webhook error (206)"
},
но я не уверен, что это только потому, что по каким-то причинам имена намерений не совпадают. Любая помощь высоко ценится!