Я создаю голосовое приложение в Action на Google с помощью Actions SDK. Он содержит помощника по входу (oAuth с кодом авторизации).
При запросе входа у пользователя есть опция Да / Нет. Обе опции перенаправляются на новое намерение с именем actions.intent.SIGN_IN
Намерение, запускающее процесс входа в систему:
app.intent('actions.intent.MAIN', async (conv) => {
conv.ask(new SignIn('To access your account'));
});
Намерение, которое вызывается после процесса входа в систему:
app.intent('actions.intent.SIGN_IN', (conv, input, signin) => {
if (signin.status === 'OK') {
conv.ask(`Great, thanks for signing in! What do you want to do next?`);
} else {
conv.ask(`I won't be able to save your data, but what do you want to do next?`);
}
});
При запуске процесса входа и ответа «Нет» на вопрос, хотите ли вы подключить свою учетную запись, пользователь переходит к намерению actions.intent.SIGN_IN и получаетсообщение о том, что данные не могут быть сохранены.
При ответе «Да» запускается поток авторизации, и при входе в систему у меня есть токен доступа в моем запросе JSON. Но затем мое приложение вылетает со следующей ошибкой:
Ошибка: текст ввода не задан.
Я сравнил оба запроса JSON, и кажется, что при возвращении из ведения журналав запросе нет необработанного ввода.
Запрос при выборе Нет при входе:
"inputs": [{
"intent": "actions.intent.SIGN_IN",
"rawInputs": [{
"inputType": "TOUCH",
"query": "Nee"
}],
"arguments": [{
"name": "SIGN_IN",
"extension": {
"@type": "type.googleapis.com/google.actions.v2.SignInValue",
"status": "CANCELLED"
}
},
{
"name": "text",
"rawText": "Nee",
"textValue": "Nee"
}
]
}]
Запрос при выборе Да при входе:
"inputs": [{
"intent": "actions.intent.SIGN_IN",
"rawInputs": [{
"inputType": "VOICE"
}],
"arguments": [{
"name": "SIGN_IN",
"extension": {
"@type": "type.googleapis.com/google.actions.v2.SignInValue",
"status": "OK"
}
},
{
"name": "text"
}
]
}]
Кто-нибудь знает, что вызывает это и как я могу решить эту проблему?