Мне трудно заставить это работать, следуя документации Amazon по Alexa. Я сижу на мели по связыванию аккаунтов, потому что не могу понять, как получить Login с Amazon (LWA), чтобы запросить область действия alexa :: skill: account_linking.
Я включил библиотеку Amazon API в свое приложение и настроил все это правильно, и я запускаю процесс с использованием (общедоступного) объекта amazon следующим образом (машинопись):
const options: any = {};
options.scope = ['profile', 'alexa::skills:account_linking'];
options.scope_data = {
profile : {essential: false}
};
options.response_type = 'code';
const self = this;
amazon.Login.authorize(options, (response) => {
if (!response || !response.code) {
throw { error: response };
}
// ... send the response code to my server
// ... to be exchanged for bearer and refresh tokens
});
То, что я ожидаю от этого, - это всплывающий процесс входа в систему Amazon, который (1) собирает пользователя в Amazon и (2) собирает согласие пользователя связать свою учетную запись Amazon с моим навыком Alexa (т. е. связан с моей размещенной на хосте службой), так что мы получаем (в браузере) код авторизации, который мы можем обменять (на нашем сервере) на носители и обновить токены, чтобы действовать от имени пользователя.
Проблема в том, что приведенный выше код сразу завершается сбоем и никогда не вызывает процесс. Брошенное сообщение гласит: «Запрошена неизвестная область». Если я удаляю строку «alexa :: skill: account_linking» из массива options.scope, я попадаю на экран входа в систему Amazon, и если я вхожу в Amazon, мой сервер получает код авторизации и т. Д. Но привязка аккаунта отсутствуетЯ застрял.
Я пытался согласовать эту документацию (которая также как-то говорит о включении идентификатора навыка) с этой документацией но я просто не вижу, как заставить это работать. Может кто-нибудь, пожалуйста, помогите указать мне правильное направление о том, что я делаю здесь неправильно? Это должно быть что-то довольно фундаментальное.