Невозможно изменить личные данные пользователя с помощью потока учетных данных клиента с помощью веб-API Spotify.

Есть ли способ изменить, например, список воспроизведения с помощью веб-API с помощью консольного приложения в потоке учетных данных клиента? https://developer.spotify.com/web-api/authorization-guide/#client-credentials-flow

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

Здесь я создал проблему в спецификации API https://github.com/spotify/web-api/issues/165


person mastier    schedule 03.02.2016    source источник


Ответы (1)


Одним из преимуществ процесса Client Credentials oAuth 2.0 является то, что приложения могут выполнять аутентифицированные запросы к веб-службе без необходимости привлечения конечного пользователя. Поскольку пользователь не участвует, запросы, которые можно сделать из приложения, ограничены. Например, используя API Spotify, вы по-прежнему можете отправлять запросы на получение метаданных дорожек, содержимого списков воспроизведения и поиск альбомов. Любая конечная точка, для которой требуется область, не может использоваться, так как требует взаимодействия с пользователем. .

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

Для этого вам нужно использовать Implicit Grant или Authentication Code Flow. Я советую вам прочитать больше о поддерживаемых потоках oAuth 2.0 в Руководстве по авторизации. . Одним из преимуществ использования потока кода авторизации является то, что вы также получаете новый маркер обновления, который можно использовать для получения маркеров доступа на неопределенный срок. Однако для этого требуется, чтобы вы написали веб-службу, которая принимает код авторизации и обменивает его на токены. Поток неявного предоставления не возвращает токен обновления, поэтому его можно использовать только в течение одного часа, пока не истечет срок действия токена доступа.

person Michael Thelin    schedule 03.02.2016
comment
Спасибо, теперь я вижу, что это просто из-за принципов стандарта oAuth 2.0. Это действительно имеет смысл. Мне просто интересно, почему я не могу иметь доступ для чтения и записи к заданным пользовательским данным без промежуточного приложения, и почему это приложение должно получать данные авторизации через обратный вызов redirect-uri. Является ли поток учетных данных клиента частью стандарта oAuth 2.0? Я не вижу этого на первый взгляд. Похоже, мне нужно один раз получить код авторизации для данного пользователя, тогда я могу иметь: - постоянный доступ? (я? с потоком авторизации?) - кратковременно? (с неявным грантом?) - person mastier; 03.02.2016
comment
Я обновил свой ответ ссылкой на спецификацию учетных данных клиента, которая является частью официального стандарта oAuth 2.0. Я также добавил некоторую информацию о двух других потоках. Если у вас есть дополнительные вопросы по этому поводу, создайте новый вопрос вместо того, чтобы отвечать в разделе комментариев. Конечно, если этот ответ неясен, я постараюсь его исправить. - person Michael Thelin; 03.02.2016
comment
Отлично, я думаю, что это полностью отвечает на мой вопрос. Я пойду по этой дороге дальше. Спасибо. - person mastier; 03.02.2016