На примере Spotify

Итак, после недавней разработки с использованием навыков Alexa, я понял, что привязка учетной записи не так проста и может быть сложной в зависимости от того, к какому API вы собираетесь привязаться. Итак, вот краткое руководство о том, как связать учетную запись с навыком Alexa, используя Spotify в качестве примера.

Шаг 1. Создайте учетную запись разработчика Spotify
Сначала вам необходимо создать учетную запись разработчика Spotify, которую вы можете зарегистрировать здесь. https://developer.spotify.com/
Затем вам нужно будет создать приложение, которое предоставит вам доступ к идентификатору клиента и секрету клиента, которые необходимы для привязки учетной записи к приложению Alexa.

Шаг 2. Включите соответствующие данные учетной записи в консоль разработчика Alexa.
После того как вы настроите свое приложение с помощью консоли разработчика Alexa. Перейдите на вкладку «сборка» и на левой боковой панели вы можете прокрутить вниз, чтобы найти «связывание учетной записи». Чтобы включить привязку учетной записи, включите параметр «Разрешить пользователям создавать учетную запись или связывать существующую учетную запись с вами?» переключать.

Дополнительную информацию об общей привязке учетной записи Alexa можно найти здесь.



Шаг 3. Введите конкретные данные Spotify
Вы должны указать URI авторизации Spotify, а также URI токена доступа, как показано ниже. Это позволит вашему приложению предоставить токен доступа, к которому любой пользователь может использовать ваш навык Alexa и отправлять запросы с помощью API Spotify.

Вам нужно будет указать свой идентификатор клиента Spotify, а также секрет клиента, который можно найти на панели инструментов разработчика Spotify.

Вы можете указать свои собственные URL-адреса перенаправления, однако я бы посоветовал использовать те, которые предоставлены Alexa, которые размещены внизу страницы привязки учетной записи Alexa. Они используются для перенаправления пользователя после того, как действительный пользователь Spotify разрешил доступ к своей учетной записи для использования приложением Alexa.

Затем вы можете выбрать области, в которые вы хотите отправлять запросы к API Spotifys и из него. Области определяют, к каким ресурсам вы можете получить доступ. Например, доступ для чтения и записи к списку воспроизведения пользователей и т. д. Для получения дополнительной информации о конкретных областях Spotify:



Наконец, я бы добавил время истечения срока действия токена доступа по умолчанию 1800, что составляет 30 минут, чтобы приложение продолжало регенерировать действительный токен доступа, чтобы приложение всегда имело действительный доступ к API.

После того, как все это предоставлено, Alexa выполняет тяжелую работу по выполнению аутентификационных вызовов к серверной части Spotify и получению токена доступа, предоставляя, как только пользователь загружает приложение, они позволяют связать свою учетную запись с вашим приложением.

Заключительные примечания
Еще несколько моментов, на которые следует обратить внимание: после привязки учетной записи вы получаете доступ к токену доступа в своем коде, делая это.

accessToken = handlerInput.requestEnvelope.context.System.user.accessToken;

Другой способ найти токен доступа — протестировать приложение в консоли разработчика и использовать команду вызова. Вы должны увидеть свой токен доступа. Иногда я копирую этот токен доступа, чтобы проверить свои вызовы API с помощью Postman.

Мое последнее замечание, о котором стоит упомянуть, заключается в том, что если вы планируете распространять свое приложение, вы должны убедиться, что у вас есть некоторый код, который проверяет, что у каждого пользователя есть действительный токен доступа, а если у них нет, они должны связать свою учетную запись с приложением.

Заключение
Это было само собой разумеющимся, когда я впервые начал разрабатывать приложение Alexa, которое требовало привязки учетной записи, поэтому я подумал, что будет проще создать запись в блоге, объясняющую это.

По любым вопросам, связанным с привязкой учетной записи к Alexa или работе с API Spotify, не стесняйтесь обращаться ко мне в Twitter.