Spotify 身份验证服务未知错误 kotlin android

问题描述 投票:0回答:1

我正在尝试使用 Spotify 应用程序和 Spotify 身份验证 API(实现“com.spotify.android:auth:2.0.1”)对用户进行身份验证,遵循 Spotify SDK github 示例中提到的步骤 我的代码:

Added in gradle(app.module) defaultConfig { manifestPlaceholders = [redirectSchemeName: "appname", redirectHostName:"spotify_login_callback"] }

// Fragment/Activity

val CLIENT_ID = "7bf56252cd644b339cc97df5b4d7eeee"
val AUTH_TOKEN_REQUEST_CODE = 0x10
val AUTH_CODE_REQUEST_CODE = 0x11

var mAccessToken: String? = null
var mAccessCode: String? = null

fun onRequestTokenClicked() {
        val request = getAuthenticationRequest(AuthorizationResponse.Type.TOKEN)
        AuthorizationClient.openLoginActivity(requireActivity(), AUTH_TOKEN_REQUEST_CODE, request)
    }

 fun onRequestCodeClicked() {
        val request: AuthorizationRequest =
            getAuthenticationRequest(AuthorizationResponse.Type.CODE)
        AuthorizationClient.openLoginActivity(requireActivity(), AUTH_CODE_REQUEST_CODE, request)
    }

 private fun getAuthenticationRequest(type: AuthorizationResponse.Type): AuthorizationRequest {
        return AuthorizationRequest.Builder(
            CLIENT_ID,
            type,
            getRedirectUri().toString()
        )
            .setShowDialog(false)
                //  "user-read-email"
            .setScopes(arrayOf("user-read-email")) // user-read-private , "streaming"
            .build()
    }

  private fun getRedirectUri(): Uri? {
        return Uri.Builder()
            .scheme("appname")
            .authority("spotify_login_callback")
            .build()
    }

 val response = AuthorizationClient.getResponse(resultCode, data)
        if (response.error != null && !response.error.isEmpty()) {
            setResponse(response.error)
            Toast.makeText(requireActivity(),"Error: response.error"+response.error,Toast.LENGTH_SHORT).show()
        }
        if (requestCode == AUTH_TOKEN_REQUEST_CODE) {
            mAccessToken = response.accessToken
            Toast.makeText(requireActivity(),"AccessToken: "+mAccessToken,Toast.LENGTH_SHORT).show()
            updateTokenView()
        } else if (requestCode == AUTH_CODE_REQUEST_CODE) {
            mAccessCode = response.code
            Toast.makeText(requireActivity(),"AccessCode"+mAccessCode,Toast.LENGTH_SHORT).show()
        }

此代码在调试库提供身份验证服务 UNKNOWN_ERROR 后打印日志“Spotify 身份验证完成。响应在 EXTRA 中,带有密钥响应”是否有人知道此错误的原因,SDK 示例中提供的相同代码工作正常。

android kotlin spotify
1个回答
0
投票

我遇到了这个错误,我能够解决它。您的问题是您的重定向 URI 未在 Spotify 仪表板中注册。因此,要解决此问题,您必须在 Spotify 仪表板中设置重定向 url 并在代码中使用它。如果您想要更多数据,只需将 Logcat 设置为 tag:spotify,您就会看到有关错误的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.