Spotify API returns string as callback result instead of json

Viewed 17

I am using Spotify API to login user to the app. this is the interface i wrote per documentation:

enter image description here

interface API {
    @GET("/authorize")
    fun login(@Query("client_id") client_id:String,
              @Query("response_type") response_type:String,
              @Query("redirect_uri")redirect_uri:String,
              @Query("scope") scope:String
    ):Call<LoginResult>

This is the response result data class: enter image description here

data class LoginResult(
    val code: String
)

And this is the login function:

fun login() {
        val BASE_URL = "https://accounts.spotify.com"
        val CLIENT_ID = "c6c23e3e2f604f9aa1780fe7504e73c6"
        val REDIRECT_URI = "com.example.myapp://callback"

        val retrofit: Retrofit = Retrofit.Builder().baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create()).build()
        val service: API = retrofit.create(API::class.java)
        val listCall: Call<LoginResult> =
            service.login(CLIENT_ID, "code", REDIRECT_URI, "user-top-read")

        listCall.enqueue(object : Callback<LoginResult> {
            override fun onResponse(response: Response<LoginResult>?, retrofit: Retrofit?) {
                if (response?.body() != null) {
                    Log.i("result!", response.body().code)

                }
                if(response?.body() == null){
                    Log.i("Code" , response!!.code().toString())
                    Log.i("Response! ", "null response body")
                }
            }

            override fun onFailure(t: Throwable?) {
                Log.e("Here", "it is")
                Log.e("Error", t!!.message.toString())
            }

        })
    }

But I am getting this error:

E/Here: it is
E/Error: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 1 path $

There are a lot of questions here about this particular error and I read all of them and tried to implement the suggested solutions, but none worked. Any help would be appreciated. [this is the mentioned documentation link]

(https://developer.spotify.com/documentation/general/guides/authorization/code-flow/)

0 Answers
Related