#flutter #spotify
Вопрос:
Я использую следующий пакет: https://pub.dev/packages/spotify_sdk
Этот пакет предоставляет метод getAuthenticationToken
, который возвращает токен доступа к spotify для использования с моим сервером для извлечения некоторых данных spotify, связанных с пользователем:
authenticationToken = await SpotifySdk.getAuthenticationToken(
clientId: dotenv.get('SPOTIFY_CLIENT_ID'),
redirectUrl: dotenv.get('SPOTIFY_AUTH_REDIRECT_URL'),
scope: 'user-read-email, user-top-read',
);
Однако срок действия этого токена истекает через 1 час. Есть ли какой-либо способ обновить этот токен без внешнего интерфейса (только на стороне сервера)? Какие у меня варианты?
Ответ №1:
tl; dr
Нет прямого способа получить токен обновления через пакет. Но есть и другие способы обойти это ограничение. См. раздел Обход
Доступность функции
Обычно API аутентификации Spotify включает токен обновления, но эта функция отсутствует в Android sdk (см.: пакет flutter: # 75 Android sdk: # 12 # 220 # 225), хотя она поддерживается ios, а также web sdk.
Если приложение будет использоваться только с ios или из Интернета, разработчики пакета flutter, скорее всего, примут pr, который предоставляет методы обновления поддерживаемых платформ, даже если это принесет мало пользы.
Функция вклада
Если вы знакомы с разработкой Android и эта функция важна для вас, вы можете попробовать самостоятельно интегрировать эту функцию в Android sdk, а затем предоставить ее в flutter sdk.
Здесь это уже было сделано в fork:
Производитель уже открыл запрос на извлечение, но пока не получил ответов (откроется в конце 2018 года).
Обход
Способ обойти это — сохранить имя пользователя и пароль пользователя на устройстве (или на сервере), хотя это было бы плохо с точки зрения безопасности.
Другим источником вдохновения может быть этот комментарий от пользователя android-sdk, который маршрутизировал аутентификацию через свой сервер.