Как использовать логин с Amazon для привязки учетной записи пользователя к моему навыку? - PullRequest
3 голосов
/ 22 октября 2019

Мне трудно заставить это работать, следуя документации 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, мой сервер получает код авторизации и т. Д. Но привязка аккаунта отсутствуетЯ застрял.

Я пытался согласовать эту документацию (которая также как-то говорит о включении идентификатора навыка) с этой документацией но я просто не вижу, как заставить это работать. Может кто-нибудь, пожалуйста, помогите указать мне правильное направление о том, что я делаю здесь неправильно? Это должно быть что-то довольно фундаментальное.

...