Действия при входе в Google oAuth не выполняются при возврате в приложение - PullRequest
1 голос
/ 16 октября 2019

Я создаю голосовое приложение в 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"
        }
    ]
}]

Кто-нибудь знает, что вызывает это и как я могу решить эту проблему?

...